Note: The other languages of the website are Google-translated. Back to English

Jak usunąć zduplikowane znaki lub słowa w ciągu komórki?

Przypuśćmy, że w każdej komórce znajdują się zduplikowane znaki lub słowa i chcesz usunąć duplikaty i pozostawić tylko unikalne znaki lub słowa. Jak możesz rozwiązać ten problem w programie Excel?

Usuń zduplikowane znaki ciągu tekstowego za pomocą funkcji zdefiniowanej przez użytkownika

Usuń zduplikowane słowa oddzielone znakami interpunkcyjnymi za pomocą funkcji zdefiniowanej przez użytkownika


strzałka niebieski prawy bąbelek Usuń zduplikowane znaki ciągu tekstowego za pomocą funkcji zdefiniowanej przez użytkownika

Jeśli masz listę ciągów tekstowych, teraz musisz usunąć zduplikowane znaki, jak pokazano na poniższym zrzucie ekranu. Tutaj mogę porozmawiać o kodzie VBA, aby sobie z tym poradzić.

dokument-usuń-duplikaty-znaków-1

1. Przytrzymaj ALT + F11 klawisze, aby otworzyć Okno Microsoft Visual Basic for Applications.

2, Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Kod VBA: Usuń zduplikowane znaki ciągu tekstowego w komórce

Function RemoveDupes1(pWorkRng As Range) As String
'Updateby Extendoffice
Dim xValue As String
Dim xChar As String
Dim xOutValue As String
Set xDic = CreateObject("Scripting.Dictionary")
xValue = pWorkRng.Value
For i = 1 To VBA.Len(xValue)
    xChar = VBA.Mid(xValue, i, 1)
    If xDic.Exists(xChar) Then
    Else
        xDic(xChar) = ""
        xOutValue = xOutValue & xChar
    End If
Next
RemoveDupes1 = xOutValue
End Function

3. Następnie zapisz i zamknij ten kod, wróć do arkusza i wprowadź tę formułę = usuniętoupes1 (A2) (A2 to komórka danych, z której chcesz usunąć duplikaty) do pustej komórki oprócz danych, patrz zrzut ekranu:

dokument-usuń-duplikaty-znaków-1

4. A następnie przeciągnij uchwyt wypełniania do komórek zakresu, w których chcesz zastosować tę formułę, wszystkie zduplikowane znaki zostały natychmiast usunięte z każdej komórki.

dokument-usuń-duplikaty-znaków-1


strzałka niebieski prawy bąbelek Usuń zduplikowane słowa oddzielone znakami interpunkcyjnymi za pomocą funkcji zdefiniowanej przez użytkownika

Jeśli w komórce są słowa oddzielone określonymi znakami interpunkcyjnymi, możesz również usunąć zduplikowane słowa, jak chcesz. Wykonaj następujące czynności:

1. Przytrzymaj przycisk ALT + F11 klawisze, aby otworzyć Okno Microsoft Visual Basic for Applications.

2, Kliknij wstawka > Modułi wklej następujący kod w Okno modułu.

Kod VBA: usuń zduplikowane słowa oddzielone interpunkcją komórki

Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
    Dim x
    'Updateby Extendoffice
    With CreateObject("Scripting.Dictionary")
        .CompareMode = vbTextCompare
        For Each x In Split(txt, delim)
            If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
        Next
        If .Count > 0 Then RemoveDupes2 = Join(.keys, delim)
    End With
End Function

3. Następnie zapisz i zamknij ten kod, wróć do arkusza i wprowadź tę formułę = RemoveDupes2 (A2; ",") do pustej komórki obok danych, zobacz zrzut ekranu:

dokument-usuń-duplikaty-znaków-1

4. Następnie skopiuj formułę do potrzebnych komórek, a wszystkie zduplikowane słowa zostały usunięte ze wszystkich komórek. Zobacz zrzut ekranu:

dokument-usuń-duplikaty-znaków-1

Uwagi: W powyższym wzorze, A2 wskazuje komórkę, której chcesz użyć, a przecinek (,) oznacza znak interpunkcyjny oddzielający słowa w komórce, możesz go zmienić na dowolne inne znaki interpunkcyjne według potrzeb.


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (66)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Nadal zepsuty... właściwie nic nie pokazuje. Oto moje dane komórki: 27000,Podstawowe,Produkty,Materiały,Z,Drewno,Kamień,Ziemny,Surowy,Materiały,27100,Podstawowe,Las,Produkty,Ogólne,27110,Podstawowe,Las,Produkty,Tartak,Produkty,27120,Podstawowe ,Las,Produkty,Drewno,Miazga,27200,Szkło Wyraźnie mają tam jakieś dublety. Pozostawia komórkę pustą. Myśli?
Ten komentarz został zminimalizowany przez moderatora na stronie
Nieważne, jestem głupi. Ponieważ chciałem tylko wyciągnąć słowa, zmieniłem nazwę modułu RemoveDupes, ale nie zmieniłem RemoveDupes w dalszej części kodu. Naprawiono, uderzanie siebie młotkiem....
Ten komentarz został zminimalizowany przez moderatora na stronie
I połączyłem RemoveDupes z ConCat (dobroć VBA, a nie CON(I-SUCK-BECAUSE-I'M-MICROSOFT)CATENATE) w to: =RemoveDupes(ConCat(",",G495:G502),",") więc wciągnął moje komórki, a następnie wymazał wszystkich naiwniaków. Dzięki za RemoveDupes, oto ConCat: Funkcja ConCat (ogranicznik jako wariant, ParamArray CellRanges() jako wariant) jako ciąg Dim komórka jako zakres, obszar jako wariant Jeśli brak (ogranicznik) Następnie ogranicznik = "" Dla każdego obszaru w CellRanges Jeśli TypeName ( Area) = "Zakres" Then dla każdej komórki w obszarze If Len(Cell.Value) Then ConCat = ConCat i ogranicznik i Cell.Value Następne Else ConCat = ConCat i ogranicznik i koniec obszaru If Next ConCat = Mid(ConCat, Len(Delimiter) ) + 1) Koniec funkcji
Ten komentarz został zminimalizowany przez moderatora na stronie
Wypróbowałem twoje rozwiązanie „Usuń zduplikowane słowa oddzielone interpunkcją za pomocą funkcji zdefiniowanej przez użytkownika” i działa świetnie w przypadku wielu słów w komórce, ALE nie rozwiązuje całkowicie mojego problemu. Mam jedną komórkę, która ma wiele wartości i chcę porównać z inną komórką z wieloma wartościami, a następnie usunąć duplikaty między dwiema komórkami. Czy jest na to sposób?
Ten komentarz został zminimalizowany przez moderatora na stronie
to samo tutaj proszę o pomoc
Ten komentarz został zminimalizowany przez moderatora na stronie
czy ten wątek wciąż żyje? Byłbym bardzo wdzięczny za wgląd w tę funkcję VBA .. moje pytania dotyczą kodu, gdzie jeśli w ogóle muszę go poinstruować, aby znalazł konkretną interpunkcję jako ogranicznik ... gdybym miał użyć "@" jako interpunkcja?
Ten komentarz został zminimalizowany przez moderatora na stronie
Twoja rada jest niesamowita! Posortowałem 58,400 2 rekordów w około 13 minuty i zaoszczędziłem tydzień (lub więcej) pracy. Moje duplikaty były nieco trudniejsze do przekształcenia tego przykładu „V&O Liquid Fuel Lantern 1-2/13in blk fuel lantern” w ten „V&O Liquid Fuel Lantern 1-2/XNUMXin blk” dziękuję.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, proszę, potrzebuję twojej pomocy, próbowałem twojego kodu, ale nie zadziałał, może dlatego, że mam numery Mam zduplikowane numery telefonów oddzielone przecinkami Proszę powiedz mi, co mam zrobić Dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
to samo tutaj proszę o pomoc
Ten komentarz został zminimalizowany przez moderatora na stronie
WSPANIALE dziękuję! Dziękuję Ci! Dziękuję Ci!
Ten komentarz został zminimalizowany przez moderatora na stronie
Wspaniale! Dziękuję!.....
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, potrzebuję twojej pomocy. Co mam zrobić, jeśli chcę wyodrębnić duplikat? W A1 (asdfghjiklkk) Więc k jest zduplikowanym znakiem Chcę A2 (k) co mam zrobić?
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy można dostosować funkcję, jeśli jest pewne słowo, które chcę powielić, podczas gdy reszta nie jest zduplikowana?
Ten komentarz został zminimalizowany przez moderatora na stronie
Tak jak bardzo dziękuję za ten poradnik, zaoszczędziłem mi dużo pracy! :)
Ten komentarz został zminimalizowany przez moderatora na stronie
To jest bardzo pomocne . Wypróbowałem to i działa jak wyjątek. Doskonały !!!!
Ten komentarz został zminimalizowany przez moderatora na stronie
To niesamowite i proste rozwiązanie do znajdowania zduplikowanych fraz w jednej komórce, znacznie łatwiejsze niż niektóre z długich rozwiązań makr, które znalazłem, szukając odpowiedzi na mój problem, dziękuję!
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki za ten kod - zaoszczędził mi mnóstwo czasu.
Ten komentarz został zminimalizowany przez moderatora na stronie
Mam dane jak 1. pokaż poniżej w jednej komórce i chcę polubić 2. 1. ZERPUR,MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653, ZERPUR(16),MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653 Potrzebuję tego jak :- ZERPUR, MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653 Dzięki i pozdrawiam Hanuman Singh 9034509168
Ten komentarz został zminimalizowany przez moderatora na stronie
Naucz mnie jak? też muszę to wiedzieć...
Ten komentarz został zminimalizowany przez moderatora na stronie
czy możemy znaleźć pozycję pierwszej małej litery?


Egzamin - RAMSHsJHSAhsjDDD ------Chcę poznać pozycję pierwszej małej litery według wzoru = s
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Meharbanie,
Możesz zastosować następującą formułę tablicową, aby uzyskać pozycję pierwszej małej litery:
=MATCH(1,IF(ABS(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))-109.5)<=12.5,1),0)
Pamiętaj, aby jednocześnie nacisnąć klawisze Ctrl + Shift + Enter.


Mam nadzieję, że ci pomoże, dziękuję!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć skyyang

działa poprawnie .....
właściwie chciałem tego samego..

Wielkie dzięki !!


Kumpel Meharban Singh
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak usunąć dopasowane duplikaty ciągów ... czy możesz mi powiedzieć?


Pozdrowienia,
Kiran
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Kiranie,
Czy możesz podać przykład swojego problemu? Możesz też wstawić obraz załącznika.
Nie mogę się doczekać twojej odpowiedzi!
Ten komentarz został zminimalizowany przez moderatora na stronie
wielkie dzięki, to mi bardziej pomaga. Ale chcę trochę więcej dla mojego zbioru danych.
Mam dane w dwóch kolumnach. Identyfikator i informacje. W kolumnie informacyjnej powtarzane są identyfikatory projektu na komórkę, takie jak „Kant-, Udp-, Akr- etc”. Dla mojego zestawu danych project_id jest większy niż 15 i został naprawiony. Więc chcę usunąć repeat_id z komórki, ale zachowaj pierwszy.
Przykład: Kant-526 (0.0287),Kant-527 (0.0113),Kant-528 (0.0262) /// Kant-526 (0.0287),527 (0.0113),528 (0.0262),
Kant-543 (0.0685),Kant-544 (0.0685),Udp-097 (0.0141) /// Kant-543 (0.0685),544 (0.0685),Udp-097 (0.0141)

Przykładowy obraz jest załączony tutaj. Czy jest na to jakieś rozwiązanie.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Imranie,
Przepraszamy za nierozwiązanie problemu, jeśli ktoś ma dobry pomysł, proszę o komentarz tutaj.
Dziękuję Ci!
Ten komentarz został zminimalizowany przez moderatora na stronie
Mam własne rozwiązanie. Użyłem tutaj formuły SUBSTITUTE, ale jest ona za duża dla moich danych. więc powtórz to dwa lub trzy razy, aby uzyskać właściwy wynik.

= PODSTAWA(PODSTAW("Kant-","",2);("Kant-","",2)
Tutaj 1 2 za drugą wymianę Kanta i za każde następne usunięcie Kanta wystarczy dodać ("Kant-","",2) ekstra. To działa dla mnie. Ale wolę dobry VBA.
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki za kod.

Możesz mi pomóc? Używam funkcji makra do usuwania słów oddzielonych interpunkcją w komórce, jednak moje dane to nie słowa, to tak naprawdę frazy. Na przykład zamiast „KTE, KTO, KTW, KTO” są właściwie krótkie opisy typu „przygotuj rachunek, przejrzyj moje e-maile, zaktualizuj umowy, przejrzyj moje e-maile”.

Czy byłoby możliwe zaktualizowanie VBA, aby usunąć zduplikowane frazy zamiast słów?

Wielkie dzięki, będzie to bardzo pomocne.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Alonso,
Aby usunąć zduplikowaną frazę, może pomóc poniższa funkcja zdefiniowana przez użytkownika, wypróbuj ją.

Funkcja RemoveDuplicateValue(xStr As String, xDelim As String) As String
Dim xWartość
Jeśli (Len(xDelim) > 0) I (Len(Trim(xStr)) > 0) Wtedy
Z CreateObject("Scripting.Dictionary")
Dla każdej wartości xValue w podziale (xStr, xDelim)
Jeśli Trim(xValue) <> "" i nie .exists(Trim(xValue)) Wtedy .Add Trim(xValue), Nic
Dalej
Jeśli .Count > 0, to RemoveDuplicateValue = Join(.keys, xDelim)
Kończyć z
Więcej
UsuńDuplicateValue = xStr
End If
End Function

Następnie zastosuj tę formułę: =RemoveDuplicateValue(A2,","), zmień separator na własny.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witaj Skyyang,



Mam nadzieję, że uzyskam pomoc z następującą komórką:

PR-PUERTORYKO; STANY ZJEDNOCZONE; STANY ZJEDNOCZONE STANÓW ZJEDNOCZONYCH

Muszę usunąć duplikat STANÓW ZJEDNOCZONEJ STANY ZJEDNOCZONEJ USA, ponieważ moje narzędzie do przesyłania nie pozwala na duplikaty.



Użyłem powyższego VBA i zamieniłem mój eliminator formuł na „;”. Czy myślnik, który to powoduje, stanowi problem? Zwraca #NAME? za każdym razem, gdy uruchamiam formułę. Jestem nowy w makrach/VBA, ale upewniłem się, że plik został zapisany jako plik z włączoną obsługą makr. Naprawdę starałem się podążać za tymi do T.


Dziękuję za wszystkie te i tak już świetne informacje, ponieważ pomogły one również w innym projekcie, który musiałem ukończyć, a wszystko, co dodatkowe, jest bardzo doceniane.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Michał,
Czy masz na myśli usunięcie wszystkich zduplikowanych fraz z komórki i pozostawienie tylko tych unikalnych?
Oczekuję na Twoją odpowiedź!
Ten komentarz został zminimalizowany przez moderatora na stronie
To jest wyjście, którego szukam:

Obecne: PR-PUERTO RICO; STANY ZJEDNOCZONE; STANY ZJEDNOCZONE STANÓW ZJEDNOCZONYCH
Pożądany: PR-PUERTORYKO; STANY ZJEDNOCZONE STANÓW ZJEDNOCZONYCH

Mam nadzieję, że to ma sens i bardzo dziękuję za szybką odpowiedź.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Michał,
Wystarczy zastosować poniższy kod, a następnie użyć tej formuły: =RemoveDuplicateValue(A2,";"). Proszę spróbować, mam nadzieję, że może ci to pomóc!

Funkcja RemoveDuplicateValue(xStr As String, xDelim As String) As String
Dim xWartość
Jeśli (Len(xDelim) > 0) I (Len(Trim(xStr)) > 0) Wtedy
Z CreateObject("Scripting.Dictionary")
Dla każdej wartości xValue w podziale (xStr, xDelim)
Jeśli Trim(xValue) <> "" i nie .exists(Trim(xValue)) Wtedy .Add Trim(xValue), Nic
Dalej
Jeśli .Count > 0, to RemoveDuplicateValue = Join(.keys, xDelim)
Kończyć z
Więcej
UsuńDuplicateValue = xStr
End If
End Function
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję bardzo. Twoja odpowiedź była bardziej mile widziana niż moja filiżanka kawy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, to jest naprawdę pomocne
Ale chcę usunąć całe słowa po „NIE TO:”

np.: NIE DO: [C11bx1]

NIE DO: [C11bx3] w ten sposób
Nie ma tu jeszcze żadnych komentarzy
Pokaż więcej
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL