Usuwanie duplikatów z listy

Wklej listę, a narzędzie zostawi tylko unikalne pozycje i powie, ile duplikatów usunęło.

Wszystko liczy się w Twojej przeglądarce - wklejona lista nie opuszcza tego urządzenia.

Lista wejściowa
Co zrobić z listą

Wynik
0Pozycji w wyniku
0Wierszy na wejściu
0Unikalnych
0Usuniętych duplikatów
Separator pozycji

Separator dotyczy zarówno wejścia, jak i wyniku.

Statystyki szczegółowe
Pozycje powtórzone0

Jak używać

  1. Wklej listę do pola u góry. Domyślnie każda pozycja stoi w nowej linii, więc możesz wkleić kolumnę z Excela, wiersze z pliku CSV albo listę z notatnika.
  2. Wybierz tryb. „Usuń duplikaty” zostawia po jednym egzemplarzu każdej pozycji, a „Pokaż tylko duplikaty” odwraca logikę i wyświetla wyłącznie powtórzenia wraz z liczbą wystąpień.
  3. Ustaw przełączniki: ignorowanie wielkości liter, przycinanie białych znaków, usuwanie pustych wierszy i sortowanie alfabetyczne. Sortowanie idzie polską kolejnością alfabetu, więc „ą” trafia zaraz za „a”.
  4. Jeśli lista pochodzi z arkusza kalkulacyjnego, zmień separator w kolumnie po prawej na przecinek albo średnik. Kolumnę skopiowaną wprost z Excela rozdziela tabulator.
  5. Zaznacz tryb „Porównaj dwie listy”, żeby zobaczyć część wspólną, pozycje występujące tylko w jednej z list albo ich sumę.
  6. Kliknij przycisk „Kopiuj wynik”, żeby skopiować przetworzoną listę do schowka. Możesz też pobrać ją jako plik TXT, wyczyścić pola albo przenieść wynik z powrotem na wejście i wykonać kolejną operację.

Wskazówki

  • Zachowujemy oryginalną postać pierwszego wystąpienia. Jeśli w liście są „Warszawa” i „warszawa”, a ignorowanie wielkości liter jest włączone, w wyniku zostanie ta forma, która pojawiła się jako pierwsza.
  • Przycinanie białych znaków usuwa spacje i tabulatory z początku i końca pozycji. To najczęstsza przyczyna „niewidocznych” duplikatów przy danych kopiowanych ze stron internetowych.
  • Sortowanie działa przez porównywarkę językową dla polszczyzny. Zwykłe sortowanie po kodach znaków wrzuciłoby wszystkie wyrazy z polskimi literami na koniec listy.
  • Listy powyżej 20 tysięcy wierszy przetwarzamy porcjami, w przerwach między odświeżeniami ekranu. Wynik pojawia się chwilę później, ale strona przez cały czas reaguje na kliknięcia i przewijanie.
  • W trybie porównania obie listy przechodzą przez te same przełączniki. Gdy pracujesz z listami z dwóch różnych źródeł, na przykład z arkusza i z pliku tekstowego, zostaw włączone przycinanie białych znaków.

Różnice między dwiema wersjami tego samego tekstu pokaże porównanie tekstów. Liczbę wystąpień pojedynczego słowa w tekście ciągłym policzy licznik słów.

Skąd biorą się duplikaty na listach

Powtórzenia rzadko wynikają z czyjegoś niedopatrzenia. Najczęściej powstają mechanicznie: przy łączeniu dwóch eksportów z różnych systemów, gdy adresy e-mail zbiera się z kilku formularzy naraz, przy scalaniu list zadań albo przy imporcie kolumny z arkusza. Im większy zbiór, tym mniejsza szansa, że da się to ogarnąć wzrokiem.

Osobna kategoria to duplikaty pozorne - pozycje, które dla człowieka są tym samym, a dla komputera dwiema różnymi wartościami. Spacja na końcu wiersza, wielka litera na początku, tabulator zamiast spacji. Trzy z czterech przełączników w tym narzędziu odpowiadają właśnie za normalizację, bo bez niej licznik powtórzeń pokaże wynik zaniżony.

Listy pochodzące z dużych zbiorów danych mają jeszcze jedno źródło powtórzeń. Ten sam rekord wpada do eksportu dwa razy, bo przy łączeniu dwóch baz danych dostał dwa identyfikatory, a scalanie po nazwisku albo po adresie tego nie wyłapie.

Jak narzędzie rozpoznaje powtarzające się pozycje

Każdy wiersz przechodzi normalizację zgodną z zaznaczonymi przełącznikami. Białe znaki z brzegów zostają przycięte, litery sprowadzone do małych, a tak przygotowany klucz trafia do struktury Set, która przechowuje wyłącznie wartości unikalne. Jeśli klucz już tam jest, wiersz uznajemy za duplikat i pomijamy go w wyniku.

Do wyniku trafia oryginalna postać pierwszego wystąpienia, a nie znormalizowany klucz. Lista z pozycjami „Nowak”, „NOWAK” i „nowak” przy włączonym ignorowaniu wielkości liter zwróci „Nowak”, w takiej postaci, w jakiej pozycja pojawiła się za pierwszym razem. Narzędzie czyści listę i zostawia zapis nietknięty.

Ten sam pomysł działa poza przeglądarką. W Pythonie kolejność wejścia zachowuje konstrukcja list(dict.fromkeys(lista)), natomiast set(lista) zwróci wartości unikalne w kolejności przypadkowej. Nasze narzędzie zachowuje się jak pierwsza z nich, więc wynik da się porównać wiersz po wierszu z listą wejściową.

Sortowanie listy w polskiej kolejności alfabetu

Sortowanie alfabetyczne w JavaScripcie domyślnie porównuje kody znaków Unicode. Przy polskich listach daje to wynik bezużyteczny, bo wszystkie wyrazy zaczynające się od „ą”, „ć” czy „ł” lądują za literą „z”, mają bowiem wyższe kody. Używamy porównywarki językowej ustawionej na polszczyznę, która zna właściwą kolejność: a, ą, b, c, ć, d, e, ę i tak dalej.

Ta sama porównywarka układa cyfry i znaki interpunkcyjne zgodnie z oczekiwaniami. Pozycje zaczynające się od cyfry trafiają na początek listy, w jedno miejsce, przed wszystkie litery.

Pięć operacji przy porównaniu dwóch list

Praca z dwiema listami sprowadza się do działań na zbiorach. Tryb porównania traktuje obie listy właśnie jak zbiory i wykonuje na nich pięć operacji, a wynik każdej z nich możesz skopiować do schowka albo pobrać jako plik tekstowy.

  • Część wspólna zwraca pozycje obecne w obu listach jednocześnie. Typowe zastosowanie to sprawdzenie, którzy klienci z zeszłorocznej listy są też na tegorocznej.
  • Tylko w liście A zostawia pozycje z pierwszej listy, których brakuje w drugiej. Przy migracji serwisu wskazuje adresy wymagające przekierowania.
  • Tylko w liście B odwraca kierunek i wyświetla pozycje nowe.
  • Suma łączy obie listy w jedną, bez powtórzeń.
  • Różnica symetryczna pokazuje pozycje występujące dokładnie w jednej z list. Przydaje się przy szukaniu rozjazdów między dwoma eksportami, które powinny być identyczne.

Usuwanie duplikatów online a funkcja „Usuń duplikaty” w Excelu

Microsoft Excel ma własne czyszczenie powtórzeń. Funkcja siedzi na karcie „Dane”, w grupie „Narzędzia danych”, pod przyciskiem „Usuń duplikaty”. Działa na zaznaczonym zakresie, a w oknie dialogowym wskazujesz, które kolumny program ma ze sobą porównywać. Po zakończeniu Excel wyświetla komunikat z liczbą zduplikowanych wartości, które usunął, i liczbą unikatowych wartości, które zostały w arkuszu. W wersjach starszych niż 2007 tego przycisku nie ma, zostaje filtr zaawansowany albo formuła LICZ.JEŻELI, która oznacza powtórzenia w sąsiedniej kolumnie.

Excel operuje na całym arkuszu, więc usunięcie duplikatów w jednej kolumnie kasuje też sąsiadujące komórki z tego samego wiersza, a to bywa kłopotliwe, gdy chcesz jedynie przejrzeć listę identyfikatorów i wrócić z nią do pliku, którego po zapisaniu i zamknięciu nikt już nie cofnie.

Tutaj pracujesz na kopii. Skopiuj kolumnę z Excela, wklej dane do pola wejściowego, a gotowy wynik wklej z powrotem tam, gdzie ma trafić. Plik źródłowy zostaje w takiej postaci, w jakiej był, a licznik pod polem wyniku pokazuje, ile wierszy się powtarzało. Przy kilku kolumnach naraz przełącz separator na tabulator. Pliki CSV z polskiej wersji arkusza rozdziela średnik i dla nich wybierz właśnie tę opcję.

Dziesiątki tysięcy wierszy i płynność działania

Usuwanie duplikatów jest operacją liniową, bo każdy wiersz sprawdzamy raz, ale przy setkach tysięcy pozycji sam czas wykonania staje się odczuwalny. Gdyby cała praca szła jednym kawałkiem, przeglądarka na ten czas przestałaby reagować na przewijanie i kliknięcia, a system operacyjny mógłby pokazać komunikat o niereagującej karcie.

Listy dłuższe niż 20 tysięcy wierszy przetwarzamy porcjami po kilka tysięcy pozycji i między porcjami oddajemy sterowanie przeglądarce. Strona pozostaje responsywna, a pod polem wyniku widać informację o trwającym przetwarzaniu. Przy krótszych listach ten mechanizm się nie włącza, bo koszt oddawania sterowania przewyższyłby samą pracę.

Najczęstsze pytania

Czy narzędzie zmienia moje dane?

Pozycje, które zostają, mają postać dokładnie taką jak w oryginale. Narzędzie usuwa wiersze uznane za powtórzenia i na tym kończy swoją pracę. Przełączniki „ignoruj wielkość liter” i „przytnij białe znaki” zmieniają wyłącznie to, co uznajemy za duplikat. Zapis pozycji, które przeszły do wyniku, zostaje bez zmian.

Czy lista trafia na serwer?

Cała praca dzieje się lokalnie, w Twojej przeglądarce, w tej karcie, którą masz otwartą. Możesz wkleić listę adresów e-mail, numerów klientów czy identyfikatorów z bazy danych, bo nic nie jest wysyłane ani zapisywane. Po zamknięciu karty dane znikają z pamięci.

Jak duża lista da się przetworzyć?

Praktyczna granica to kilkaset tysięcy wierszy i wynika z pamięci przeglądarki, nie z samego algorytmu. Dziesiątki tysięcy pozycji narzędzie przetwarza porcjami, żeby strona nie zastygła. Wynik pojawia się wtedy z niewielkim opóźnieniem, ale interfejs reaguje przez cały czas.

Dlaczego pozycje wyglądające tak samo nie zostały uznane za duplikaty?

Najczęściej z powodu niewidocznych różnic: spacji na końcu wiersza, twardej spacji zamiast zwykłej albo znaku tabulacji. Włącz przełącznik „Przytnij białe znaki”. Gdy różnica siedzi gdzie indziej, sprawdź, czy pozycje nie zawierają znaków łudząco podobnych do siebie, na przykład myślnika i półpauzy albo litery „o” i cyfry „0”.

Czy narzędzie rozróżnia wielkość liter?

Domyślnie ignoruje wielkość liter, więc „Kowalski” i „kowalski” to dla niego jedna pozycja. Wyłącz przełącznik „Ignoruj wielkość liter”, a każda litera zacznie się liczyć i obie formy zostaną w wyniku. Pierwsze ustawienie sprawdza się przy adresach e-mail, drugie przy hasłach, kodach i identyfikatorach, w których wielkie litery niosą znaczenie.

Jak sprawdzić, czy lista zawiera duplikaty, bez ich usuwania?

Przełącz tryb na „Pokaż tylko duplikaty”. Zobaczysz wyłącznie te pozycje, które wystąpiły więcej niż raz, z liczbą wystąpień w nawiasie. Licznik „Usuniętych duplikatów” nad wynikiem od razu podaje skalę problemu, a lista wejściowa zostaje w polu u góry nietknięta. Gdy zdecydujesz się usunąć powtórzenia, wróć do trybu podstawowego.

Gdzie w Excelu jest funkcja „Usuń duplikaty”?

Na karcie „Dane”, w grupie „Narzędzia danych”. Zaznacz najpierw kolumnę albo zakres, potem kliknij przycisk i wskaż kolumny, po których Excel ma porównywać wiersze. Program usuwa całe wiersze arkusza, więc gdy chcesz usunąć duplikaty z samej listy identyfikatorów, bez ruszania sąsiednich kolumn, skopiuj ją tutaj i wklej wynik z powrotem.

Czy da się usunąć duplikaty w obrębie jednej linii, rozdzielone przecinkami?

Tak, wystarczy zmienić separator w kolumnie po prawej na przecinek. Narzędzie potraktuje wtedy każdy fragment między przecinkami jako osobną pozycję, a wynik złoży z powrotem w jedną linię rozdzieloną przecinkami.

Czy to darmowe narzędzie i czy wymaga konta?

Korzystanie jest bezpłatne, bez rejestracji i bez instalowania czegokolwiek. Cały kod ładuje się razem ze stroną i wykonuje w przeglądarce, więc jedynym ograniczeniem pozostaje pamięć Twojego urządzenia.