unikalne wystąpienia

Użytkowanie arkusza kalkulacyjnego
dentopolis
Posty: 224
Rejestracja: pn wrz 23, 2013 2:48 pm

unikalne wystąpienia

Post autor: dentopolis »

w kolumnie A mam kategorie np:
telewizor
lodówka
komputer
komputer
telewizor

w jaki sposób wyświetlić w drugim arkuszu tylko trzy unikalne kategorie? chciałbym żeby to była funkcja a nie ręczne filtrowanie danych.
LibreOffice 7.6
Awatar użytkownika
Rafkus
Posty: 527
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: unikalne wystąpienia

Post autor: Rafkus »

Uważam, że najprościej to zrobić tabelą przestawną.
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
dentopolis
Posty: 224
Rejestracja: pn wrz 23, 2013 2:48 pm

Re: unikalne wystąpienia

Post autor: dentopolis »

tylko że chcę te dane potem pobrać jak z konkretnej komórki więc szukam innej metody
LibreOffice 7.6
Awatar użytkownika
Rafkus
Posty: 527
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: unikalne wystąpienia

Post autor: Rafkus »

No to w takim razie można zastosować takie rozwiązanie, wykorzystującą funkcję macierzową:

Kod: Zaznacz cały

=INDEKS($A$1:$A$17;   PODAJ.POZYCJĘ(0;   LICZ.JEŻELI($G$1:G1;  $A$1:$A$17);   0))
gdzie:
$A$1:$A$17 - zakres danych: wszystkie dane z kolumny A;
$G$1:G1 - rozszerzający się zakres unikalnych wystąpień kategorii, W G1 może być np. pierwsza wartość z kolumny A, a przedstawiona powyższa formuła będzie generować kolejne wartości;
LICZ.JEŻEL - tworzy w pamięci 0-1 macierz danych informującą ile razy dane kryterium (czyli każda wartość z zakresu danych) wystąpiła w unikalnym zakresie;
PODAJ.POZYCJĘ - zwraca pozycję na której znajduje pierwsze nieznane wystąpienie unikalnej wartości, a dzięki funkcji INDEKS zamienimy tą informację na wartość z tego pola.

Tą formułę można jeszcze obudować formułą ukrywającą wystąpienie błędu czyli nie znalezienia unikalnych wystąpień.
Przypominam: Funkcję macierzową zatwierdza się przez jednoczesne wciśnięcie klawiszy CTRL+SHIFT+ENTER

Sprostawanie:
Formuła, którą podałem jest musi być formułą macierzową tylko w OpenOffice.
W LibreOffice można ją potraktować jako zwykłą formułę.
Ostatnio zmieniony sob lis 27, 2021 1:00 pm przez Rafkus, łącznie zmieniany 1 raz.
Powód: Dodałem małe sprostowanie
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Awatar użytkownika
Jermor
Posty: 2351
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: unikalne wystąpienia

Post autor: Jermor »

Napisałeś:
dentopolis pisze:... a nie ręczne filtrowanie danych.
Oczekujesz zatem funkcji, która automatycznie odpowie na każdą zmianę danych. Takiej możliwości nie ma także wspomniana przez @Rafkus tabela przestawna. Gdyż po każdej zmianie, która zaszła w kolumnie źródłowej, musisz wymusić odświeżenie tabeli przestawnej, a robisz to ustawiając się wewnątrz niej i wywołując "Dane -> Tabela przestawna -> Odśwież" albo po kliknięciu prawym przyciskiem myszki, wybierając w menu kontekstowym "Odśwież".
Co do pobierania danych, jak ze zwykłej komórki, to dla tabeli przestawnej istnieje funkcja WEŹDANETABELI pozwalająca pobrać oczekiwane dane z takiej tabeli, choć w przypadku wykorzystania tabeli wyłącznie w celu uzyskania listy indywidualnych nazw pozycji, czyli de facto boczku takiej tabeli, wykorzystanie tej funkcji nie będzie chyba możliwe.
Jeśli powyższego sposobu nie uznajesz za "ręczny", to w podobny sposób możesz wykorzystać odfiltrowanie danych, bez duplikatów, do wybranego miejsca. Po pierwszym, rzeczywiście ręcznym, odfiltrowaniu następne otrzymasz korzystając z polecenia "Dane -> Odśwież zakres". Jak skorzystać z tej możliwości można poczytać tutaj https://yestok.pl/lbo/y59.php. Otrzymasz wówczas kolumnę indywidualnych nazw, jednak w przeciwieństwie do tabeli przestawnej, wielkość liter będzie miała znaczenie. Ponadto nazwy pojawia się na tej liście w kolejności pierwszego wystąpienia w danych źródłowych, a nie w kolejności alfabetycznej, tak jak to czyni tabela przestawna.
AOO 4.1.15, LO 24.8.2 (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.
Awatar użytkownika
Rafkus
Posty: 527
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: unikalne wystąpienia

Post autor: Rafkus »

Wybaczcie, że "odgrzewam tego starego kotleta", ale chciałem sobie uprościć formuły zwracające unikalne wystąpienia więc napisałem własną funkcję, która to robi. A skoro pamiętałem, że taki problem był poruszany na tym forum, pozwolę sobie ją zaprezentować:

EDIT:
Nową nieco poprawioną funkcję wraz z opisem i przykładami można znaleźć tutaj: Unikalne wystąpienia (po raz trzeci).
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