ID tematu: 75076
 |
Funkcja UNIKATOWE - zagadka |
Autor |
Wiadomość |
Maciej Gonet
Excel Expert

Wersja: Win Office 365
Pomógł: 3616 razy Posty: 10635
|
Wysłany: 05-10-2023, 21:25 Funkcja UNIKATOWE - zagadka
|
|
|
Dawno już nie mieliśmy w tym dziale zagadki. Może więc pora na coś nowego.
Tym razem zagadka będzie adresowana głównie do użytkowników nowej wersji Excela, bo w zasadzie dotyczyć będzie funkcji UNIKATOWE. Jak wiadomo, ta funkcja pozwala na odfiltrowanie duplikatów i pozostawienie wartości różnych. Może filtrować dane kolumnami lub wierszami, ale jeśli podamy jej argument w postaci tablicy dwuwymiarowej, to jest on przetwarzany jako całość. Nie ma możliwości, jak w przypadku funkcji FILTRUJ czy SORTUJ, filtrowania czy sortowania całej tablicy na podstawie kryterium opartego na jednej kolumnie czy jednym wierszu.
Gdy pojawi się taki problem, trzeba zaangażować do pomocy również inne funkcje. Zadania tego rodzaju można rozwiązać na przykład za pomocą filtra zaawansowanego stosując go "w miejscu". Mnie jednak chodzi w tym przypadku o rozwiązanie za pomocą formuły.
W załączonym pliku jest ilustracja do tego zadania. Jest tam tabelka złożona z 3 kolumn: Imię, Nazwisko i Grupa. Celem jest odfiltrowanie duplikatów na podstawie kolumny Grupa i pozostawienie tylko pierwszych osób z danej grupy.
Jeśli ktoś z użytkowników starszych wersji Excela będzie miał pomysł na rozwiązanie funkcjami tradycyjnymi, to również zapraszam do zabawy.
Filtr_unikaty_pyt.xlsx
|
Pobierz Plik ściągnięto 111 raz(y) 10.73 KB |
|
|
 | ID posta:
430359
|
|
|
 |
|
|
|
Maciej Gonet
Excel Expert

Wersja: Win Office 365
Pomógł: 3616 razy Posty: 10635
|
Wysłany: 11-10-2023, 19:44
|
|
|
Widzę, że sprawy bieżące tak bardzo zaprzątają uwagę uczestników naszego Forum, że brak już czasu na rozwiązywanie zagadek.
Nikt nie przesłał propozycji rozwiązania, ale 7 osób pobrało załącznik, więc przynajmniej wyraziło zainteresowanie. Należy się im zatem informacja, jak widzi możliwości rozwiązania autor zagadki.
W przypadku możliwości użycia funkcji UNIKATOWE zastosowałbym taką formułę:
Kod: | =UNIKATOWE(WYBIERZ.WIERSZE($A$8:$C$14;PODAJ.POZYCJĘ($C$8:$C$14;$C$8:$C$14;0))) | Funkcja WYBIERZ.WIERSZE jest wygodniejsza od funkcji INDEKS gdy chodzi o wybór całych wierszy. Funkcja PODAJ.POZYCJĘ zwraca listę pierwszych wystąpień poszczególnych wartości w kolumnie C.
Gdy mamy starszą wersję Excela można zastosować formuły tablicowe jednowierszowe:
Kod: | =JEŻELI.BŁĄD(INDEKS($A$8:$C$14;PODAJ.POZYCJĘ(0;LICZ.JEŻELI(L$7:L7;$C$8:$C$14);0);0);"") | Kopie tej formuły odwołują się (w kolumnie L) do poprzednio wyświetlonych wyników. Jest to nieco niewygodne, gdy chcemy skopiować formułę w inne miejsce.
Inny wariant (nieco dłuższa formuła, też tablicowa wierszowa) wymaga tylko użycia licznika WIERSZ(A1):
Kod: | =JEŻELI.BŁĄD(INDEKS($A$8:$C$14;AGREGUJ(15;6; (WIERSZ($C$8:$C$14)-WIERSZ($C$7))/(PODAJ.POZYCJĘ($C$8:$C$14;$C$8:$C$14;0)= WIERSZ($C$8:$C$14)-WIERSZ($C$7));WIERSZ(A1));0);"") |
Filtr_unikaty_rozw.xlsx
|
Pobierz Plik ściągnięto 86 raz(y) 11.84 KB |
|
|
 | ID posta:
430519
|
|
|
 |
|
|
Koran
Exceloholic

Wersja: Win Office 2007
Posty: 151
|
Wysłany: 11-10-2023, 20:38
|
|
|
Maciej Gonet napisał:
Cytat: | Nikt nie przesłał propozycji rozwiązania, ale 7 osób pobrało załącznik, więc przynajmniej wyraziło zainteresowanie. |
Myślę Maciej, że to nie jest wina braku zainteresowania, lecz bardziej z wersji korzystania.
Osobiście przekonałem się, że rozwiązania dla Excel 365 nie są dla starszych wersji, więc nie ma, co się dziwić skoro większość tak jak i ja korzystamy ze starszych wersji:(
Jednak należy Ci podziękować za Twoje zaangażowanie na tym Forum.
Nie wiem jak inni, ale ja jestem pełen podziwu za Twoją aktywność i za to, co tu robisz i za to bardzo Ci dziękuję.
Pozdrawiam Koran |
|
 | ID posta:
430522
|
|
|
 |
|
|
Bill Szysz
Excel Expert


Wersja: Win Office 365
Pomógł: 1075 razy Posty: 4184
|
Wysłany: 13-10-2023, 10:59
|
|
|
Maciej Gonet, qrcze....przegapiłem Twoją zagadkę:-(
Zaproponowałeś zgrabne rozwiązanie....jednak mam dla niego małą modyfikację.
Kod: | =WYBIERZ.WIERSZE(A8:C14;X.DOPASUJ(UNIKATOWE(C8:C14);C8:C14)) |
W ten sposób nie przeszukujemy zakresu C8:C14 tyle razy ile jest wierszy w tym zakresie a jedynie tyle razy ile jest unikatów w tym zakresie (w tym przypadku 3 razy zamiast 7).
Dzięki za zagadkę
|
_________________
Pozdrawiam, były szbill62 aktualnie Bill Szysz |
|
 | ID posta:
430567
|
|
|
 |
|
|
Maciej Gonet
Excel Expert

Wersja: Win Office 365
Pomógł: 3616 razy Posty: 10635
|
Wysłany: 13-10-2023, 11:34
|
|
|
Koran i Bill Szysz, bardzo dziękuję za zainteresowanie i miłe słowa.
Rozwiązanie Billa wydaje się w tym przypadku optymalne ze względu na szybkość.
Natomiast ogólnie można tu użyć kilku wariantów, przestawiając kolejność funkcji i używając wymiennie PODAJ.POZYCJĘ i X.DOPASUJ.
Ja wybrałem taki wariant, aby zaznaczyć, że funkcja UNIKATOWE może filtrować całe wiersze, a nie tylko pojedyncze komórki. W przykładach podawanych zazwyczaj jako zakres funkcji podaje się pojedynczą kolumnę. |
|
 | ID posta:
430570
|
|
|
 |
|
|
hurgadion
ExcelSpec


Wersja: Win Office 2021
Pomógł: 1223 razy Posty: 2824
|
Wysłany: 03-11-2023, 10:01
|
|
|
Hej,
ciekawy problem, mam trochę inne rozwiązanie niż wyżej podane:
Kod: |
=INDEKS(A:A;MIN(JEŻELI($C$8:$C$14=INDEKS(UNIKATOWE($C$8:$C$14);WIERSZ()-11);WIERSZ($C$8:$C$14);"")))
|
Pozdrawiam
Filtr_unikaty_pyt.sol.xlsx
|
Pobierz Plik ściągnięto 82 raz(y) 11.35 KB |
|
|
 | ID posta:
431020
|
|
|
 |
|
|
Maciej Gonet
Excel Expert

Wersja: Win Office 365
Pomógł: 3616 razy Posty: 10635
|
Wysłany: 03-11-2023, 12:00
|
|
|
Widzę, że przeglądasz stare tematy i nadrabiasz zaległości.
Bardzo dziękuję za nową propozycję rozwiązania. Jak to zwykle bywa w Excelu zadanie można rozwiązywać wieloma sposobami, co kto lubi i co się komu skojarzy. |
|
 | ID posta:
431023
|
|
|
 |
|
|
hurgadion
ExcelSpec


Wersja: Win Office 2021
Pomógł: 1223 razy Posty: 2824
|
Wysłany: 04-11-2023, 09:18
|
|
|
I jeszcze ciut krótsza wersja rozwiązania:
Kod: |
=X.WYSZUKAJ(UNIKATOWE($C$8:$C$14);$C$8:$C$14;A$8:A$14;"";0;1)
|
Ciekawe są te nowe funkcje Excela, dają sporo możliwości. Pozdrawiam.
Filtr_unikaty_pyt.sol2.xlsx
|
Pobierz Plik ściągnięto 100 raz(y) 11.84 KB |
|
|
 | ID posta:
431048
|
|
|
 |
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
|
Strona uĹźywa plikĂłw cookies.
Kliknij tutaj, Ĺźeby dowiedzieÄ siÄ jaki jest cel uĹźywania cookies oraz jak zmieniÄ ustawienia cookie w przeglďż˝darce.
KorzystajÄ
c ze strony uĹźytkownik wyraĹźa zgodÄ na uĹźywanie plikĂłw cookies, zgodnie z bieĹźÄ
cymi ustawieniami przeglÄ
darki.
SprawdĹş, w jaki sposĂłb przetwarzamy dane osobowe
|