Segregacja/wyszukiwanie zduplikowanych liczb

Użytkowanie arkusza kalkulacyjnego
ulaR
Posty: 4
Rejestracja: śr kwie 29, 2020 8:31 pm

Segregacja/wyszukiwanie zduplikowanych liczb

Post autor: ulaR »

Witam. Mam problem z wyszukiwaniem liczb z tabeli, w której niektóre z danych są takie same. Stosując funkcję WYSZUKAJ lub WYSZUKAJ.POZIOMO z liczb zduplikowanych zwraca mi zawsze jedną tylko liczbę (pierwszą ze znalezionych) a chciałabym mieć każda z tych liczb zwróconą (nieważne w jakiej kolejności). Ciężko to wytłumaczyć, ale lepiej to opisalam w calcu na moim przykładzie. Nie umiem stosować makr. Dużo szukałam na internecie, znalazłam jedną z opcji, ale nie jestem nawet w stanie jej spróbować czy pasowałaby do mojej sytuacji, bo rozwiązanie jest dla excela z funkcjami, których Open Office nie ma - i bazuje na CSE a z tym nigdy nie pracowałam, choć to chyba nie jest tak trudne tak jak makra. Ale CSE sama napisać nie umiem. Podaję tą stronę: https://exceliadam.pl/excel/zwracanie-k ... h-wartosci

Próbowałam robić zagnieżdzone funkcje z WYSZUKAJ+MAKS.K+KOLUMNA ale nic się nie sprawdza. Czy ktoś z Was umie coś takiego zrobić? Byłabym wdzięczna. Pozdrawiam.
Załączniki
segregacja.ods
(22.5 KiB) Pobrany 188 razy
Ostatnio zmieniony śr kwie 29, 2020 9:22 pm przez ulaR, łącznie zmieniany 1 raz.
OpenOffice 4.1.3 na Windows 7
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Segregacja/wyszukiwanie zduplikowanych liczb

Post autor: Jan_J »

Jak dużo jest tych danych?
jeśli nie więcej niż kilka tysięcy, spróbuj sprawdzić, ile razy dana wartość występuje w danej kolumnie ale nie niżej niż w bieżącej komórce. Jeśli 1, to pojawia się po raz pierwszy.
=licz.jeżeli(A$1:A1; A1)
i potem zrób filtr na tej kolumnie zliczeń dla wartości 2. Dostaniesz komplet drugich wystąpień, czyli każdą powtarzającą się daną dokładnie raz.

Metoda jest mało efektywna, bo zlicza za każdym razem krotność w bloku od początku do bieżącego miejsca. Dlatego zastrzegłem, że nadaje się dla krótkich ciągów.

Skuteczniej byłoby posortować, a potem sprawdzać, czy bieżący wpis jest innny niż jego bezpośredni poprzednik (pierwsze wystąpienie) albo taki sam jak bezpośredni poprzednik, ale inny niż jego poprzednik (drugie wystąpienie). To zresztą da się zrobić prościej formułą typu
=jeżeli(A2=A1;B1+1;1)
i tak jak poprzednio, założyć filtr na wartość 2.

PS. CSE to żargon; porządnie się to nazywa „formuły tablicowe”, „formuły macierzowe”, „formuły wektorowe”; ew. „składnia” zamiast „formuły”. Znaczenia skrótu CSE ani bym się domyślił, musiałem wspomóc się wyszukiwarką.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ulaR
Posty: 4
Rejestracja: śr kwie 29, 2020 8:31 pm

Re: Segregacja/wyszukiwanie zduplikowanych liczb

Post autor: ulaR »

Dziękuję, ale czy patrzyłeś na calca? Bo te metody chyba nie pasują do moich danych, bo liczby w kolumnach nie powtarzają się, więc tu nie zadziała zliczanie krotności ich ich wystąpień. Liczby te maja też zupełnie inne numery (mówię o numerach z R.1.) i są po pierwszej segregacji haotycznie porozrzucane.
Dla lepszego zrozumienia jeszcze raz wysyłam calca z rozszerzonym wytłumaczeniem jak liczby haotycznie się porozrzucały, bo chyba mało jasno to wytłumaczylam. Chciałabym, żeby znów wróciły na swoje miejsce i żebym miała jeden wspólny nagłówek dla nich (nagłówek na szaro od 1 do 30)
Załączniki
segregacja1.ods
(23.24 KiB) Pobrany 192 razy
s1.png
OpenOffice 4.1.3 na Windows 7
Awatar użytkownika
Rafkus
Posty: 516
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Segregacja/wyszukiwanie zduplikowanych liczb

Post autor: Rafkus »

Troszkę już późno więc na razie dam tylko rozwiązania...
Ostatnio zmieniony czw kwie 30, 2020 9:47 am przez Rafkus, łącznie zmieniany 1 raz.
Powód: skasowałem plik, poniżej podana nowa wersja
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
ulaR
Posty: 4
Rejestracja: śr kwie 29, 2020 8:31 pm

Re: Segregacja/wyszukiwanie zduplikowanych liczb

Post autor: ulaR »

Jutro sprawdzę czy na 100% ułoży się to do moich danych bo tabel mam bardzo dużo i muszę na świeżo zrozumieć jutro jak to zrobiłeś, ale już się zaczynam cieszyć, bo to wygląda na to, o co mi chodziło dziękuję :bravo: i wrócę tu jutro jak to posprawdzam
OpenOffice 4.1.3 na Windows 7
Awatar użytkownika
Rafkus
Posty: 516
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Segregacja/wyszukiwanie zduplikowanych liczb

Post autor: Rafkus »

Bez formuły macierzowej też się da. Procenty możesz obliczyć według wzoru:

Kod: Zaznacz cały

=A3 / ŚREDNIA( INDEKS(ZakresR2;  0; numer_kolumny   )
Gdzie:
ZakresR2 - są to twoje dane źródłowe posegregowane malejąco ($A$11:$AD$15)
0 - parametr funkcji Indeksu, podaje się tu który wiersz ma zostać zwrócony. Dzięki 0 otrzymasz w wyniku wszystkie wiersze z ZakresuR2
numer_kolumny - kolejny parametr funkcji Indeksu - podajesz ( a właściwie obliczasz) która kolumna cię interesuje. Obliczysz ją następująco:

Kod: Zaznacz cały

PODAJ.POZYCJĘ(A3; $A11:$AD11;  0) + LICZ.JEŻELI($A3:A3;A3)-1)
  • - PODAJ.POZYCJĘ(A3; $A11:$AD11; 0) - podaje w której kolumnie z zakresu $A11:$AD11 znajduje się wartość z A3, Zero oznacza że ma podać pierwsze wystąpienie
    - LICZ.JEŻELI($A3:A3;A3)-1 - sprawdza które to jest wystąpienie wartości z A3, tutaj poda że pierwsze dlatego aby nie zmienić wyniku z PODAJ.POZYCJI jest jeszcze -1. Formuła ta zapewni przesunięcie pozycji kolejnych wystąpień tych samych wartości
Formuła Indeks w tym przypadku, zwróci jedną kolumnę z danego ZakresuR2, z której obliczy średnią.

Cała formuła będzie zatem wyglądać następująco:

Kod: Zaznacz cały

=A3 / ŚREDNIA( INDEKS($A$11:$AD$15;  0;   PODAJ.POZYCJĘ(A3; $A11:$AD11;  0) + LICZ.JEŻELI($A3:A3;A3)-1))
W załączniku rozwiązanie.
Załączniki
segregacja3.ods
(34.1 KiB) Pobrany 183 razy
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
ODPOWIEDZ