usuwanie duplikatów i puste komorki

Użytkowanie arkusza kalkulacyjnego
mata78
Posty: 2
Rejestracja: śr cze 12, 2019 7:07 am

usuwanie duplikatów i puste komorki

Post autor: mata78 »

Witajcie
Jak usunąć duplikaty w kolumnie ale tak aby zostaly puste komorki? robiac to filtrem standartowym usuwa mi mi wszystkie puste komorki i zmienia pozycje, a ja chcialbym zostawić puste pola
LibreOffice 6.2.3.2, OpenOffice 4.1.3
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: usuwanie duplikatów i puste komorki

Post autor: Jan_J »

Formułą.

W kolumnie A są dane.
W kolumnie B począwszy od A2, wpisujemy i kopiujemy w dół formułę
=jeżeli(czy.błąd(podaj.pozycję(A2; A$1:A1; 0)); A2; "")

po ludzku: przepisz wartość, jeśli występuje po raz pierwszy w kolumnie.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
mata78
Posty: 2
Rejestracja: śr cze 12, 2019 7:07 am

Re: usuwanie duplikatów i puste komorki

Post autor: mata78 »

Dziekuje o to mi chodziło działa!
LibreOffice 6.2.3.2, OpenOffice 4.1.3
Andar
Posty: 3
Rejestracja: wt lis 23, 2021 2:23 am

Re: usuwanie duplikatów i puste komorki

Post autor: Andar »

Witam,
Pozwolę sobie odświeżyć.
Czy w równie prosty sposób można formułą usunąć duplikaty i puste komórki z tabeli? Nie używając filtrów.
Pozdrawiam
Wojtek
OpenOoffice 4.1.11 na Windows 10
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: usuwanie duplikatów i puste komorki

Post autor: Jan_J »

To znaczy zbudować nową kolumnę zawierającą spis z usuniętymi powtórzeniami, ale bez luk?
Polega to na tym, że trzeba zbudować wykaz numerów porządkowych pierwszych wystąpień każdej wartości, a potem zbudować kolumnę z wpisów spod tych numerów. Da się za pomocą funkcji wyszukujących: podaj.pozycję, indeks, przesunięcie.
Tak zorganizowany filtr działa „natychmiast” po aktualizacji tabeli, ale metoda jest kosztowna obliczeniowo na etapie sprawdzania, czy dane wystąpienie jest pierwsze.
Najtaniej byłoby posortować spis i pobrać z niego po jednym reprezentacie każdej wartości — wtedy byłaby to np. pierwsza wartość z bloku identycznych wartości — ale realizacja tego pomysłu przez formułę jest dosć kłopotliwa; zwłaszcza sortowanie. Używają go natomiast filtry z klauzulą unikalności.

Załączam naprędce sklecony szkic do analizy. Z kolumny Lp można zrezygnować albo na korzyść zliczania (liczba wystąpień w bloku powyżej wartości wynosi 0) — wtedy dochodzi dodatkowy narzut na zliczanie — albo użycia funkcji wiersz() — zaś wtedy numeracja będzie prowadzona względem planszy arkusza zamiast względem pozycji w bloku.
unikalne.ods
(7.85 KiB) Pobrany 127 razy
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Andar
Posty: 3
Rejestracja: wt lis 23, 2021 2:23 am

Re: usuwanie duplikatów i puste komorki

Post autor: Andar »

Tabela, a w zasadzie kolumna będzie mieć max kilkanaście wierszy, zatem ten koszt obliczeniowy nie będzie (chyba) tak wielki. Problem w tym, że wyniki pobieram potem kolejno w inne miejsca, więc potrzebuję je w następujących po sobie komórkach. Moja znajomość OpenOffice'a jest na tyle słaba, że udało mi się jedynie rozwiązać to dla kolumny 5 wierszowej na funkcji jeżeli, zagnieżdżając ją chyba ze 13 razy. Brzydko to wygląda i głowa boli od pilnowania wszystkich zależności, zabezpieczeń itd. Dodam tylko, że do kolumny jest pobierany tekst z list rozwijanych. Spróbuję rozwiązać to na podstawie Twoich wskazówek.
Dzięki wielkie
Wojtek
OpenOoffice 4.1.11 na Windows 10
Andar
Posty: 3
Rejestracja: wt lis 23, 2021 2:23 am

Re: usuwanie duplikatów i puste komorki

Post autor: Andar »

Ten szkic naprędce jest dokładnie tym czego potrzebuję.
Jesteś Wielki, dzięki!
Wojtek
OpenOoffice 4.1.11 na Windows 10
ODPOWIEDZ