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.
unikalne wystąpienia
-
- Posty: 224
- Rejestracja: pn wrz 23, 2013 2:48 pm
unikalne wystąpienia
LibreOffice 7.6
Re: unikalne wystąpienia
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
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
-
- Posty: 224
- Rejestracja: pn wrz 23, 2013 2:48 pm
Re: unikalne wystąpienia
tylko że chcę te dane potem pobrać jak z konkretnej komórki więc szukam innej metody
LibreOffice 7.6
Re: unikalne wystąpienia
No to w takim razie można zastosować takie rozwiązanie, wykorzystującą funkcję macierzową:
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łę.
Kod: Zaznacz cały
=INDEKS($A$1:$A$17; PODAJ.POZYCJĘ(0; LICZ.JEŻELI($G$1:G1; $A$1:$A$17); 0))
$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
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
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: unikalne wystąpienia
Napisałeś:
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.
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ż".dentopolis pisze:... a nie ręczne filtrowanie danych.
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.
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: unikalne wystąpienia
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).
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
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP