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: 538
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: 538
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: 2479
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.16 (tylko Win 10), LO 25.8 (x64) na: Win 11, 10, Linux (Mint)
Ważne!
Jeśli twój problem został rozwiązany, edytuj swój pierwszy post, dopisując w temacie [SOLVED].
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Awatar użytkownika
Rafkus
Posty: 538
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