Usunięcie duplikatów w na podstawie grupy i kolumn

Użytkowanie arkusza kalkulacyjnego
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Usunięcie duplikatów w na podstawie grupy i kolumn

Post autor: Altaro »

Witam W związku z brakiem biegłości w temacie proszę was o pomoc. Posiadam zbiór w którym interesują mnie trzy kolumny. Jedna z tych kolumn to typ zaś dwie następne to parametry.
Przykład:

PARAMETR 1. PARAMETR2. TYP
123. 456. A
789. 12. A
987. 654. A
987. 654. B
321. 124. B

Sprawa polega na tym:
Parametr pierwszy i parametr drugi jest nierozerwalnie ze sobą połączone razem z typem.
Jak widzimy, występuje sytuacja w której PARAMETR 1 i PARAMETR 2 powtarza się w TYPIE A jak i w TYPIE B. W tym wypadku chciałbym, aby w sytuacji w której powtórzą się wspólnie takie wartości, ale są w różnych TYPACH, by usuwać TYP B i zostawiać tylko te dwa parametry ale w typie A. Jeśli choć jeden parametr w rzędzie różniłby się to wtedy mają zostać obydwa, ale jeśli są takie same obydwa parametry ale są w różnych typach To należałoby usunąć typ B.

Nie jestem biegły w tym i niestety nie znalazłem rozwiązania.
Dziękuję za pomoc i pozdrawiam
Win 10
LibreOffice 7.1.3.2 x64
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Usunięcie duplikatów w na podstawie grupy i kolumn

Post autor: Jan_J »

Możesz to zrobić funkcjami zliczającymi:
* albo countif w odniesieniu do warunków w jednej kolumnie. W tym przypadku trzeba by zbudować sztuczną kolumnę z trzech istniejących, łącząc zawartość jakimś separatorem;
* albo countifs w odniesieniu do warunków liczonych na podstawie wielu kolumn. Załączam przykład. Funkcja ta jest dostępna w LibreOffice, ale nie w Apache OpenOffice.
altaro_query.ods
(7.11 KiB) Pobrany 40 razy
Przy użyciu anglojęzycznych nazw funkcji w formułach

Kod: Zaznacz cały

=AND(C2="B"; COUNTIFS(A$2:A$100; A2; B$2:B$100; B2; C$2:C$100; "A")>0)
a po przełączeniu na polski (chyba)

Kod: Zaznacz cały

=I(C2="B"; LICZ.WARUNKI(A$2:A$100; A2; B$2:B$100; B2; C$2:C$100; "A")>0)
Jak to działa:
pytamy każdy wiersz z osobna, czy jest on taki, że w kolumnie TYP występuje w nim B, i jednocześnie czy istnieje taki wiersz typu A, w którym w kolumnach parametrów znajdują się te same dane, co w wierszu bieżącym. Ściślej: czy liczba takich wierszy jest niezerowa.

Usunięcie danych jest niewykonalne przy użyciu samych formuł. Możesz użyć wyników obliczeń albo do ukrycia wytypowanych wierszy (Autofiltr), albo przekopiowania pozostałych wierszy (Filtr standardowy), także w to samo miejsce.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Usunięcie duplikatów w na podstawie grupy i kolumn

Post autor: Jermor »

Jak napisał @Jan_J w Apache OpenOffice nie ma funkcji LICZ.WARUNKI(). Możesz wykorzystać inną formułę. Przykład w załączniku.
Jest to formuła macierzowa

Kod: Zaznacz cały

=LICZ.JEŻELI($A$2:$A$6&$B$2:$B$6;A2&B2)
zatwierdzana skrótem klawiaturowym CTRL+SHIFT+ENTER.
Następnie wykorzystać filtr standardowy.
Aby skopiować formułę macierzową do pozostałych komórek, musisz użyć albo polecenia "Kopiuj", a potem "Wklej" do zadanego obszaru, albo przeciągać formułę przy pomocy myszki z przyciśniętym klawiszem CTRL.
Załączniki
Altaro.ods
(22.93 KiB) Pobrany 43 razy
AOO 4.1.15, LO 7.5.9 (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
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Usunięcie duplikatów w na podstawie grupy i kolumn

Post autor: Jermor »

Intryguje mnie jednak niejednoznaczny opis twojego przykładu. Może chodzić o to, że w jednej komórce zapis zawiera cyfrowy kod, znak kropki, drugi kod cyfrowy, znowu znak kropki, po którym występuje typ, czyli pojedynczy wiersz twojego przykładu jest zawartością komórki w kolumnie np. "Kod". Wówczas formuła musi być inna. Zakładając, że typ jest jednoznakowym oznakowaniem formuła miałaby postać:

Kod: Zaznacz cały

=LICZ.JEŻELI(LEWY($A$26:$A$30;DŁ($A$26:$A$30)-1);LEWY(A26;DŁ(A26)-1))
oczywiście nadal byłaby to formuła macierzowa, a sama formuła odnosi się do innego położenia danych źródłowych.
Parametry do filtru standardowego byłyby takie:
obraz_2023-10-26_170423204.png
obraz_2023-10-26_170423204.png (10.28 KiB) Przejrzano 312 razy
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Usunięcie duplikatów w na podstawie grupy i kolumn

Post autor: Altaro »

Kropki nie mają tu znaczenia. To tylko kwestia pisania na telefonie.
Win 10
LibreOffice 7.1.3.2 x64
ODPOWIEDZ