Witam. Potrzebuję formuły, która zwróci zestaw liczb, które są przyporządkowane do tej samej wartości. Może nie będe zawile tłumaczyć, najszybciej można to zrozumieć z przykładu poniżej.
Jest to przykład uproszczony, w moim arkuszu będzie około 100-150 liczb z tych pomalowanych na pomarańczowo. Wszystkie liczby będą tylko całkowite i tylko nieujemne.
Liczby z wiersza nr 2 są ustawione chaotycznie - nie są posegregowane.
Liczy z wiersza nr 1 są posegregowane rosnąco lub malejąco.
Czy mógłby ktoś pomóc? Będę bardzo wdzięczna.
Formuła przyporządkowująca liczby do wskazanej wartości
Formuła przyporządkowująca liczby do wskazanej wartości
- Załączniki
-
- przyporzadkowanie.png (60.45 KiB) Przejrzano 729 razy
OpenOffice 4 / Windows 10 Home 64-bit
Re: Formuła przyporządkowująca liczby do wskazanej wartości
Warto pracować na kolumnach danych, nie na wierszach. W praktyce tak jest prościej.
Najpierw uporządkowałbym dane wg podwójnego kryterium: podstawowe niebieskie, drugorzędne brązowe.
Następnie wykrywałbym długości bloków o jednakowych wartościach w niebieskiej kolumnie (nawet funkcja licz.jeżeli do tego się nadaje), po czym transponowałbym bloki brązowe, tak by powstały wierszowe kopie poszczególnych fragmentów kolumny. Być może pracę, w ogóle bez formuł, załatwiłaby tabela przestawna. Nie jestem w tym biegły.
Ja bym to robił poza arkuszem, na strukturach słownikowych (tablice asocjacyjne). Rozwiązanie się napisać w kilku linijkach tekstu. Ale nie wiem, czy taka opcja wchodzi w grę.
Najpierw uporządkowałbym dane wg podwójnego kryterium: podstawowe niebieskie, drugorzędne brązowe.
Następnie wykrywałbym długości bloków o jednakowych wartościach w niebieskiej kolumnie (nawet funkcja licz.jeżeli do tego się nadaje), po czym transponowałbym bloki brązowe, tak by powstały wierszowe kopie poszczególnych fragmentów kolumny. Być może pracę, w ogóle bez formuł, załatwiłaby tabela przestawna. Nie jestem w tym biegły.
Ja bym to robił poza arkuszem, na strukturach słownikowych (tablice asocjacyjne). Rozwiązanie się napisać w kilku linijkach tekstu. Ale nie wiem, czy taka opcja wchodzi w grę.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Formuła przyporządkowująca liczby do wskazanej wartości
Wymyśliłem Tobie coś takiego:
Funkcja indeks, z danego zakresu będzie będzie zwracała wartość z określonego wiersza i kolumny. Zakres składa się z jednego wiersza (stąd 1 w formule) natomiast numer kolumny trzeba wyznaczyć. Przy pomocy funkcji JEŻELI będzie sprawdzane czy w drugim wierszu na danym miejscu znajduje się poszukiwana wartość. Jeśli tak, zostanie zapamiętane w której jest kolumnie, jeśli nie zostanie zapamiętane NIC "". W ten sposób powstał nowy zbiór danych zawierający listę z numerami kolumn. Z tego zbioru przy pomocy funkcji MIN.K zostanie pobrany konkretny numer kolumny, określony funkcją KOLUMNA(An) (n to liczba) do INDEKSU.
Kod: Zaznacz cały
=INDEKS($A$1:$K$1; 1; MIN.K(JEŻELI($A$2:$K$2=$A6; KOLUMNA($A$2:$K$2); ""); KOLUMNA(A6)))
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Formuła przyporządkowująca liczby do wskazanej wartości
@Rafkus - gratulacje.
Pozwoliłem sobie na niewielką modyfikację.
Zamiast ukrywać komórki z błędem przy pomocy formuły (ona zadziała tylko w LibreOffice), zastosowałem dla tego obszaru formatowanie warunkowe. Gdy komórka zawiera błąd, wyświetlaj białe fonty (na białym tle), gdy nie zawiera błędu dodaje tło. Tu zresztą wyszła kolejna różnica między LO a AOO. W LO można wybrać warunek: komórka "Jest błędem" lub "Nie jest błędem" w AOO takiej możliwości nie ma, więc trzeba skorzystać z formuły.
Rozszerzyłem też zakres wynikowy. Formalnie rzecz biorąc mogłaby wystąpić sytuacja, że taka sama liczba pojawi się w każdej komórce drugiego wiersza, wówczas musi pojawić się tyle wartości w wierszu ile jest ich w tym pierwszym.
Pozwoliłem sobie na niewielką modyfikację.
Zamiast ukrywać komórki z błędem przy pomocy formuły (ona zadziała tylko w LibreOffice), zastosowałem dla tego obszaru formatowanie warunkowe. Gdy komórka zawiera błąd, wyświetlaj białe fonty (na białym tle), gdy nie zawiera błędu dodaje tło. Tu zresztą wyszła kolejna różnica między LO a AOO. W LO można wybrać warunek: komórka "Jest błędem" lub "Nie jest błędem" w AOO takiej możliwości nie ma, więc trzeba skorzystać z formuły.
Rozszerzyłem też zakres wynikowy. Formalnie rzecz biorąc mogłaby wystąpić sytuacja, że taka sama liczba pojawi się w każdej komórce drugiego wiersza, wówczas musi pojawić się tyle wartości w wierszu ile jest ich w tym pierwszym.
- Załączniki
-
- transpozycje_blokow_szkic2_j.ods
- (12.99 KiB) Pobrany 75 razy
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Formuła przyporządkowująca liczby do wskazanej wartości
Piękne!Rafkus pisze: ↑czw lut 02, 2023 4:56 pm Wymyśliłem Tobie coś takiego:Kod: Zaznacz cały
=INDEKS($A$1:$K$1; 1; MIN.K(JEŻELI($A$2:$K$2=$A6; KOLUMNA($A$2:$K$2); ""); KOLUMNA(A6)))
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)