Jak usunąć duplikaty w obrębie komórki w programie Excel

  • Udostępnij To
Michael Brown

Istnieją trzy sposoby wyszukiwania i usuwania duplikatów w obrębie komórki w programie Excel. Wystarczy wybrać ten, który działa najlepiej dla Ciebie.

Jeśli chodzi o usuwanie zduplikowanych wartości lub wierszy, to Microsoft Excel oferuje szereg różnych opcji. Ale jeśli chodzi o usuwanie identycznego tekstu w obrębie danej komórki, to Excel nie oferuje... nic. Żadnych narzędzi, żadnych funkcji, żadnych formuł, nic. Czy przeszkodzi nam to w osiągnięciu naszego celu? W żadnym wypadku. Jeśli Excel nie ma funkcji, której potrzebujemy, to napiszmy własną :)

    Jak usunąć powtarzające się słowa w komórce programu Excel

    Problem : Masz w komórce te same słowa lub ciągi tekstowe i chciałbyś usunąć drugie i wszystkie kolejne powtórzenia.

    Rozwiązanie : niestandardowa funkcja zdefiniowana przez użytkownika lub makro VBA.

    Funkcja zdefiniowana przez użytkownika do usuwania duplikatów w obrębie komórki

    Aby wyeliminować duplikaty tekstu w komórce, można użyć następującej funkcji zdefiniowanej przez użytkownika (UDF) o nazwie RemoveDupeWords :

    Function RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) dictionary.CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add part, Nothing End If Next If dictionary.Count> 0 Then.RemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    Jak wstawić kod funkcji do swojego skoroszytu

    Aby dodać powyższy kod do swojego Excela, oto co musisz zrobić:

    1. Naciśnij Alt + F11, aby otworzyć edytor Visual Basic.
    2. W lewym panelu kliknij prawym przyciskiem myszy ThisWorkbook i wybrać Wkładka > Moduł .
    3. Wklej powyższy kod do Kod okno.

    Więcej informacji znajdziesz w rozdziale Jak wstawić kod VBA w programie Excel.

    Składnia funkcji RemoveDupeWords

    Nasza nowo utworzona funkcja do usuwania zduplikowanego tekstu w komórce ma następującą składnię:

    RemoveDupeWords(text, [delimiter])

    Gdzie:

    • Tekst (wymagane) - ciąg znaków lub komórka, z której chcemy usunąć powtarzający się tekst.
    • Delimiter (opcjonalne) - ogranicznik, którym będzie oddzielony powtarzany tekst. Jeżeli jest pominięty, to ogranicznikiem jest spacja.

    Funkcja to. niewrażliwy na wielkość liter , co oznacza, że małe i duże litery są traktowane jako te same znaki.

    Jak używać funkcji RemoveDupeWords

    Po dodaniu kodu funkcji do swojego skoroszytu możesz używać jej w swoich formułach w taki sam sposób, jak używasz wbudowanych funkcji Excela.

    Po prostu zacznij wpisywać nazwę funkcji po znaku równości, a pojawi się ona w intellisense formuły. Kliknij dwukrotnie na funkcję, a będziesz miał ją wstawioną do komórki. Zdefiniuj argumenty, wpisz nawias zamykający, naciśnij Enter , a twoja formuła jest gotowa.

    Na przykład, aby usunąć z A2 zduplikowane słowa oddzielone przecinkiem i spacją, wprowadź poniższą formułę w B2, a następnie przeciągnij ją w dół przez tyle komórek, ile potrzeba:

    =RemoveDupeWords(A2, ", ")

    W rezultacie otrzymasz listę unikalnych słów lub podciągów oddzielonych znakiem przecinek i spacja :

    Jeśli wolisz otrzymać listę oddzieloną przecinkami, użyj tylko przecinek dla delimitera:

    =RemoveDupeWords(A2, ",")

    Jeśli dane źródłowe są oddzielone znakiem przestrzeń , drugi argument powinien być " " lub pominięty:

    =RemoveDupeWords(A2)

    Jak każda inna funkcja Excela, nasz UDF przelicza się automatycznie, gdy zmieniają się dane źródłowe, więc Twoje wyniki będą zawsze aktualne.

    Makro VBA do usuwania zduplikowanego tekstu z wielu komórek jednocześnie

    Jeśli chcesz usunąć powtarzający się tekst z wielu komórek za jednym razem, to możesz wywołać polecenie RemoveDupeWords W tym przypadku separator jest zakodowany na sztywno i będziesz musiał aktualizować kod makra za każdym razem, gdy zmieni się separator. Alternatywnie możesz napisać kilka wariantów kodu dla najpopularniejszych separatorów, np. spacji, przecinka lub przecinka i spacji, i nadać makrom sensowne nazwy, np. RemoveDupesDelimSpace .

    Kod makra wygląda następująco:

    Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End Sub

    W powyższym kodzie delimiterem jest znak przecinek i spacja Aby użyć innego delimitera, zastąp ", " innym znakiem(ami) w tej linii kodu:

    cell.Value = RemoveDupeWords(cell.Value, ", ")

    Uwaga. Aby makro działało, jego kod i kod funkcji RemoveDupeWords muszą być umieszczone w tym samym module.

    Jak używać makra

    Wstaw kod makra do własnego skoroszytu lub otwórz nasz przykładowy skoroszyt z kodem, a następnie wykonaj następujące czynności, aby uruchomić makro.

    1. Zaznacz zakres komórek, z których chcesz usunąć powtarzający się tekst.
    2. Naciśnij Alt + F8, aby otworzyć Makro okno dialogowe.
    3. Na liście makr wybierz RemoveDupeWords2 .
    4. Kliknij Uruchom .

    Więcej szczegółów znajdziesz w rozdziale Jak uruchomić makro w programie Excel.

    Uwaga. Ponieważ działanie makra nie można cofnąć Zalecamy zapisanie skoroszytu tuż przed użyciem makra. W ten sposób, jeśli coś pójdzie nie tak, można po prostu zamknąć i ponownie otworzyć skoroszyt, a następnie wrócić dokładnie do miejsca, w którym się znajdowałeś. Możesz też po prostu zrobić kopię arkusza (arkuszy), którego (których) makro może dotyczyć.

    Jak usunąć zduplikowane znaki w komórce

    Problem : Masz wiele wystąpień tego samego znaku w komórce, podczas gdy każda komórka powinna zawierać tylko jedno wystąpienie danego znaku.

    Rozwiązanie : niestandardowa funkcja zdefiniowana przez użytkownika lub makro VBA.

    Funkcja zdefiniowana przez użytkownika do usuwania powtarzających się znaków

    Aby usunąć zduplikowane znaki w obrębie komórki z zachowaniem tylko pierwszych wystąpień, można użyć następującej funkcji zdefiniowanej przez użytkownika o nazwie RemoveDupeChars :

    Function RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = result & char End If Next RemoveDupeChars = result Set dictionary = Nothing End Function

    Aby wstawić kod funkcji do swojego skoroszytu, kroki są dokładnie takie same jak w poprzednim przykładzie.

    Składnia funkcji RemoveDupeChars

    Składnia tej niestandardowej funkcji jest tak prosta, jak to tylko możliwe - wymagany jest tylko jeden argument:

    RemoveDupeChars(text)

    Gdzie tekst to ciąg lub komórka, z której chcesz usunąć zduplikowane znaki.

    Funkcja to. rozróżnianie wielkości liter i traktuje małe i duże litery jako różne znaki.

    Jak używać funkcji RemoveDupeChars

    Wszystko co powiedzieliśmy o użyciu RemoveDupeWords jest prawdziwe dla RemoveDupeChars Zatem, nie zagłębiając się zbytnio w teorię, przejdźmy od razu do przykładu.

    Aby usunąć zduplikowane znaki z kolumny A zaczynającej się w A2, wprowadź tę formułę w B2 i skopiuj ją w dół:

    =RemoveDupeChars(A2)

    Jak widać na poniższym obrazku, funkcja z powodzeniem obsługuje różne typy znaków, w tym litery, cyfry i symbole specjalne:

    Wskazówka. Jeśli twoje postacie są oddzielone od siebie jakimś delimiter jak np. spacja, przecinek lub myślnik, to należy użyć RemoveDupeWords funkcja, jak pokazano w poprzednim przykładzie.

    Makro VBA do usuwania takich samych znaków z komórki

    Jak RemoveDupeWords , RemoveDupeChars Funkcja może być również wywołana z wnętrza makra:

    Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub

    Ponieważ ten FROM nie używa żadnego delimitera, nie będziesz musiał wprowadzać żadnych poprawek w kodzie.

    Uwaga. Aby makro działało, jego kod i kod FROM RemoveDupeChars muszą być umieszczone w tym samym module w edytorze VBA.

    Jak używać makra

    Zakładając, że wstawiłeś już kod makra do swojego skoroszytu lub otworzyłeś nasz przykładowy skoroszyt zawierający kod, uruchom makro w ten sposób.

    1. Wybierz zakres komórek, z których chcesz usunąć powtarzające się znaki.
    2. Naciśnij Alt + F8, aby otworzyć Makro okno dialogowe.
    3. Na liście makr wybierz RemoveDupeChars2 .
    4. Kliknij Uruchom .

    Usuń zduplikowane podłańcuchy za pomocą Ultimate Suite

    Na początku tego poradnika wspomniano, że Microsoft Excel nie ma wbudowanej funkcji usuwania duplikatów w komórce. Ale nasz Ultimate Suite ma!

    Można je znaleźć w. Usuwacz duplikatów menu rozwijane na Dane Ablebits zakładka, w Dedupe grupa. Jeśli Usuń zduplikowane podłańcuchy opcja nie pojawia się w Twoim Excelu, upewnij się, że masz zainstalowaną najnowszą wersję Ultimate Suite (darmową wersję próbną można pobrać tutaj).

    Aby usunąć powtarzające się słowa lub tekst z wielu komórek w 5 sekund (sekunda na krok :), oto co musisz zrobić:

    1. Wybierz swoje dane źródłowe i uruchom Usuń zduplikowane podłańcuchy narzędzie.
    2. Określ. delimiter .
    3. Określenie, czy leczyć kolejne delimitery jako jeden (domyślnie).
    4. Wybierz, czy chcesz wykonać rozróżnianie wielkości liter lub bez rozróżniania wielkości liter wyszukiwanie.
    5. Kliknij Usuń .

    Gotowe! Żadnej zabawy z VBA czy formułami, tylko szybkie i dokładne wyniki.

    Aby dowiedzieć się więcej o tym wspaniałym dodatku, odwiedź jego stronę główną. Albo jeszcze lepiej, pobierz wersję ewaluacyjną poniżej i wypróbuj ją!

    Oto jak usunąć zduplikowany tekst w komórce. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Dostępne pliki do pobrania

    Przykłady usuwania duplikatów w komórce (plik .xlsm)

    Ultimate Suite 14-dniowa w pełni funkcjonalna wersja (plik .exe)

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.