Tip: andere talen zijn Google-Vertaald. Je kunt het English versie van deze link.
Log in
x
or
x
x
Registreren
x

or

Hoe verwijder ik dubbele tekens of woorden in string van een cel?

Stel dat er in elke cel dubbele tekens of woorden voorkomen en u de duplicaten wilt verwijderen en alleen unieke tekens of woorden wilt achterlaten. Hoe kun je dit probleem oplossen in Excel?

Verwijder dubbele tekens van de tekenreeks met de door de gebruiker gedefinieerde functie

Verwijder dubbele woorden gescheiden door interpunctie met door de gebruiker gedefinieerde functie


Selecteer dubbele waarden in een kolom en verwijder ze vervolgens in één keer:

Doordat uw bureau Kutools for Excel's Selecteer Dupliceren en unieke cellen functie, kunt u snel de dubbele of unieke waarden uit een bereik selecteren en markeren en vervolgens kunt u ze verwijderen of opmaken zoals u nodig hebt.

doc verwijdert beide duplicaten 15 15


pijl blauwe rechterbel Verwijder dubbele tekens van de tekenreeks met de door de gebruiker gedefinieerde functie


Als u nu een lijst met tekstreeksen hebt, moet u de dubbele tekens verwijderen zoals weergegeven in het volgende screenshot. Hier kan ik praten over een VBA-code om ermee om te gaan.

doc-remove-dupliceren-characters-1

1. Houd de toets ingedrukt ALT + F11 toetsen om de te openen Microsoft Visual Basic for Applications-venster.

2. Klikken bijvoegsel > moduleen plak de volgende code in de Module venster.

VBA-code: verwijder dubbele tekens van de tekenreeks in een cel

Function RemoveDupes1(pWorkRng As Range) As String
'Updateby20140924
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. Sla deze code vervolgens op en sluit deze, ga terug naar het werkblad en voer deze formule in = Removedupes1 (A2) (A2 is de gegevenscel waarvan u duplicaten wilt verwijderen) in een lege cel naast uw gegevens, zie screenshot:

doc-remove-dupliceren-characters-1

4. Sleep vervolgens de vulgreep naar de cellen in het bereik waarmee u deze formule wilt toepassen. Alle dubbele tekens zijn onmiddellijk uit elke cel verwijderd.

doc-remove-dupliceren-characters-1


pijl blauwe rechterbel Verwijder dubbele woorden gescheiden door interpunctie met door de gebruiker gedefinieerde functie

Als er woorden zijn die worden gescheiden door bepaalde leestekens in een cel, kunt u de dubbele woorden ook verwijderen zoals u wilt. Voer de volgende stappen uit:

1. Houd de toets ingedrukt ALT + F11 toetsen om de te openen Microsoft Visual Basic for Applications-venster.

2. Klikken bijvoegsel > moduleen plak de volgende code in de Module venster.

VBA-code: verwijder dubbele woorden gescheiden door interpunctie van een cel

Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
    Dim x
    'Updateby20140924
    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. Sla deze code vervolgens op en sluit deze, keer terug naar het werkblad en voer deze formule in = RemoveDupes2 (A2, "") in een lege cel naast uw gegevens, zie screenshot:

doc-remove-dupliceren-characters-1

4. Kopieer de formule vervolgens naar de gewenste cellen en alle dubbele woorden zijn uit alle cellen verwijderd. Zie screenshot:

doc-remove-dupliceren-characters-1

Notes: In de bovenstaande formule, A2 geeft de cel aan die u wilt gebruiken, en de komma (,) staat voor het leesteken dat de woorden in een cel scheidt, u kunt dit wijzigen naar andere leestekens in uw behoefte.


Kutools voor Excel - De beste Office-productiviteitstool Verhoog uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Coderen van cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula Bar (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken op gefilterd bereik...
  • Cellen / rijen / kolommen samenvoegen zonder gegevens te verliezen; Inhoud gesplitste cellen; Combineer dubbele rijen / kolommen... voorkomen dubbele cellen; Ranges vergelijken...
  • Selecteer Dupliceren of Uniek rijen; Selecteer Lege rijen (alle cellen zijn leeg); Super Find en Fuzzy Find in veel werkboeken; Willekeurig selecteren ...
  • Exacte kopie Meerdere cellen zonder formule-referentie te wijzigen; Automatisch referenties maken naar meerdere vellen; Voeg kogels toe, Selectievakjes en meer ...
  • extract Text, Tekst toevoegen, verwijderen op positie, Verwijder de spatie; Subtotalen voor paging maken en afdrukken; Converteren tussen cellen Inhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerde sortering per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Volledige functionaliteit 60-daagse gratis proefversie.
kte-tab 201905

Tabblad Office Brengt interface met tabbladen naar Office en maakt uw werk veel eenvoudiger

  • Bewerken en lezen met tabbladen inschakelen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en verlaagt dagelijks honderden muisklikken voor u!
Officetab onderaan
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Ujjwal · 3 days ago
    thanks for the info.

    Can we also remove both duplicate values?
  • To post as a guest, your comment is unpublished.
    Ivan · 13 days ago
    Thank you for the information! Very useful!
    I need help for the output as below:
    CODE, POST, GRADE, POST, GRADE, GRADE ------> CODE, POST, GRADE
    I need to remain with only one of each presented. Please assist. Thanks in advance!
    • To post as a guest, your comment is unpublished.
      skyyang · 12 days ago
      Hi, Ivan,
      To solve your problem, method 2 in this article can help you! Please try, thank you!
      • To post as a guest, your comment is unpublished.
        Ivan · 12 days ago
        Hi Skyyang,
        It worked indeed, many thanks!!! Initially It didnt work cuz i had "space" after the delimiters and that "space" should be put when typing the formula too. However, many thanks!!!
  • To post as a guest, your comment is unpublished.
    vinay · 28 days ago
    thank you so much for information
    the VBA code RemoveDupes2
    i need the output as below
    Code,post,code,guest,code,location ----> post,guest,location


    could you please suggest. I really appreciate your help
    • To post as a guest, your comment is unpublished.
      skyyang · 20 days ago
      Hi, vinay,
      To remove all duplicate values and only keep the uniques, please use the below code:

      Function RemoveDuplicateValue(xDStr As String, xDelim As String) As String
      Dim xValue
      Dim xB As Boolean
      Dim xArr As Variant
      Dim xF, xFF As Integer
      Dim xUB As Integer
      Dim xStr, xRStr As String
      If (Len(xDelim) > 0) And (Len(Trim(xDStr)) > 0) Then
      xArr = Split(xDStr, xDelim)
      xUB = UBound(xArr)
      For xF = 0 To xUB - 1
      xStr = xArr(xF)
      If xStr <> "" Then
      xB = False
      For xFF = xF + 1 To xUB
      If UCase(xStr) = UCase(xArr(xFF)) Then
      xB = True
      xArr(xFF) = ""
      End If
      Next
      If xB Then xArr(xF) = ""
      End If
      Next
      xRStr = ""
      For Each xStr In xArr
      If xStr <> "" Then xRStr = xRStr & xStr & xDelim
      Next
      xRStr = Mid(xRStr, 1, Len(xRStr) - 1)
      Else
      xRStr = ""
      End If
      RemoveDuplicateValue = xRStr
      End Function

      And then use this formula: =RemoveDuplicateValue(A1,",").
      Please try, hope it can help you!
      • To post as a guest, your comment is unpublished.
        vinay · 18 days ago
        Thanks

        I really appreciate your help
  • To post as a guest, your comment is unpublished.
    jenny · 1 months ago
    How can I remove the word dealer code in every word in each cell and just leave the number.
    Like the following:
    DEALER CODE A123
    DEALER CODE B456
    DEALER CODE C789
    DEALER CODE D012

    Result needed is:
    A123
    B456
    C789
    D012
    • To post as a guest, your comment is unpublished.
      skyyang · 27 days ago
      Hi, jenny,
      To remove the first x characters from a cell, please apply the below formula:
      =RIGHT(A1, LEN(A1)-12)

      Please try, hope it can help you!
  • To post as a guest, your comment is unpublished.
    alongkorn · 1 months ago
    Disturbing Excel formula


    If column A1 = R10, R11, R12, R13, R14, R15, R16, R17


    And column B1 = R10, R11, R19, R13, R14, R18, R20, R17


    Want the column C1 to find the difference


    Will get column C1 = R12, R19, R15, R16, R18, R20


    How to use the formula?
  • To post as a guest, your comment is unpublished.
    Rocio · 8 months ago
    Hi, what should I do if I want to delete duplicated words within on cell? For example, Ana Garcia Lopes Garcia -> Ana Garcia Lopes
    • To post as a guest, your comment is unpublished.
      skyyang · 8 months ago
      Hello, Rocio,
      To remove the duplicate words within a cell, you should apply the User Defined Function of the second method in this article,
      Remove duplicate words separated by punctuation with User Defined Function

      and then apply this formula:=RemoveDupes2(A2," ").
      Please try it, hope it can help you!
      • To post as a guest, your comment is unpublished.
        Rocio · 8 months ago
        Thanks! but what will happen if i do not have punctuation within the cell? for example: Apple Book Pencil Book and I want to remove the duplicated word in this case Book and just obtain Apple Book Pencil
        • To post as a guest, your comment is unpublished.
          skyyang · 8 months ago
          Hi,
          If your cell value is separated by space, after pasting the above code, you just need to replace the comma with space as follows:
          Replace this formula:=RemoveDupes2(A2,",") with =RemoveDupes2(A2," ")
  • To post as a guest, your comment is unpublished.
    Bill Davis · 8 months ago
    I have been using the VBA code: Remove duplicate words separated by punctuation of a cell RemoveDupes2 logic for some time now and I recently had my machine upgraded to O365 and when running this same process, I get an error on my cell. Instead of returning the values I expect, I am getting the #Value! error in the cell.

    I'm not too savy on writing formulas or using the VB logic, so not sure where to start, any guidance would be helpful.
  • To post as a guest, your comment is unpublished.
    NeedExcelHelp · 1 years ago
    What about removing duplicate addresses. If I have a cell that says "123 Address St. 123 Address St." How can I select only the first address when I have many cells with different addresses in each of them?
  • To post as a guest, your comment is unpublished.
    Suraj Singh · 1 years ago
    Can we removed the duplicate from in single cell tax . like as per below tax the highlighted tax is duplicate.

    C2/1104, SUMMER PALM SECTOR 86 C2/1104, SUMMER PALM FARIDABAD HARYANA India
  • To post as a guest, your comment is unpublished.
    Angshuman Pradhan · 1 years ago
    how to save =RemoveDupes2 this formula in excel 2007
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hello, Pradhan,
      To save this formula for using next time, you should save the workbook as Excel Macro-Enabled Workbook file format.
      Please try it, hope it can help you!
  • To post as a guest, your comment is unpublished.
    Alonso · 1 years ago
    Thanks for the code.

    Can you please help me? I am using the macro function to remove words separated by punctuation of a cell, however my data is not words is actually phrases. Like instead of "KTE, KTO, KTW, KTO" is actually short descriptions like "prepare a bill, review my emails, update the contracts, review my emails".

    Would it be possible to update the VBA to remove duplicated phrases instead of words?

    Many thanks, this will be actually very helpful.
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hi, Alonso,
      To remove duplicate phrase, the following User Defined Function may help you, please try it.

      Function RemoveDuplicateValue(xStr As String, xDelim As String) As String
      Dim xValue
      If (Len(xDelim) > 0) And (Len(Trim(xStr)) > 0) Then
      With CreateObject("Scripting.Dictionary")
      For Each xValue In Split(xStr, xDelim)
      If Trim(xValue) <> "" And Not .exists(Trim(xValue)) Then .Add Trim(xValue), Nothing
      Next
      If .Count > 0 Then RemoveDuplicateValue = Join(.keys, xDelim)
      End With
      Else
      RemoveDuplicateValue = xStr
      End If
      End Function

      Then apply this formula: =RemoveDuplicateValue(A2,","), change the separator , to your own.
      • To post as a guest, your comment is unpublished.
        Michael Wentzell · 1 years ago
        Hello skyyang,



        I am hoping to get some help with the following cell:

        PR-PUERTO RICO; US-UNITED STATES; US-UNITED STATES

        I need the duplicate US-UNITED STATES removed as my upload tool will not allow for duplicates.



        I used the above VBA and replaced my formula deliminator with ";". Is the hyphen causing this to have an issue? It returns #NAME? whenever I run the formula. I am new to macros/VBA but I made sure the file was saved as a Macro Enabled file. I really tried to follow these to the T.


        Thank you for all of this already great information as it has helped with another project I had to complete as well and anything additional is greatly appreciated.
        • To post as a guest, your comment is unpublished.
          skyyang · 1 years ago
          Hi, Michael,
          Do you mean to remove all duplicate phrases from a cell, and only leave the unique ones?
          Look forward to your reply!
          • To post as a guest, your comment is unpublished.
            Michael Wentzell · 1 years ago
            This is the output I am looking for:

            Current: PR-PUERTO RICO; US-UNITED STATES; US-UNITED STATES
            Desired: PR-PUERTO RICO; US-UNITED STATES

            Hope this makes sense and thank you very much for the quick reply.
            • To post as a guest, your comment is unpublished.
              skyyang · 1 years ago
              Hi, Michael,
              You just need to apply the below code, and then use this formula: =RemoveDuplicateValue(A2,";"). Please try, hope it can help you!

              Function RemoveDuplicateValue(xStr As String, xDelim As String) As String
              Dim xValue
              If (Len(xDelim) > 0) And (Len(Trim(xStr)) > 0) Then
              With CreateObject("Scripting.Dictionary")
              For Each xValue In Split(xStr, xDelim)
              If Trim(xValue) <> "" And Not .exists(Trim(xValue)) Then .Add Trim(xValue), Nothing
              Next
              If .Count > 0 Then RemoveDuplicateValue = Join(.keys, xDelim)
              End With
              Else
              RemoveDuplicateValue = xStr
              End If
              End Function
  • To post as a guest, your comment is unpublished.
    Imran Rtul · 1 years ago
    thanks a lot, it helps me more. But I want some specific more for my dataset.
    I have two Columns data. ID and Info. In Info Column, per cell project-id like "Kant-, Udp-, Akr- etc" are repeated. For my dataset the project_id is more than 15 and It fixed. So I want to delete the repeated_id from cell but keep the first one.
    Examle: 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)

    Sample image is attached here. Is there any solution for this.
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hello, Imran,
      Sorry for not solving your problem, if anyone has the good idea, please comment here.
      Thank you!
      • To post as a guest, your comment is unpublished.
        Imran Rtul · 1 years ago
        I have got a solution by my own. I have used SUBSTITUTE formula here, but it is too large for my data. so repeat it two or three times for getting the proper result.

        =SUBSTITUTE(SUBSTITUTE("Kant-","",2), ("Kant-","",2)
        Here, 1st 2 for second Kant- replacement and for next every Kant- removing just add ("Kant-","",2) extra. Its working for me. But I prefer a good VBA.
  • To post as a guest, your comment is unpublished.
    Kiran · 1 years ago
    How to remove matched string duplicates...can u pls tell me


    Regards,
    Kiran
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hello, Kiran,
      Can you give an example of your problem? Or you can insert an attachment image.
      Looking forward to your reply!
  • To post as a guest, your comment is unpublished.
    Meharban singh pal · 2 years ago
    can we find out position of 1st Lower case letter


    Exam - RAMSHsJHSAhsjDDD ------I want to know position of 1st small letter by formula = s
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hello, Meharban,
      You can apply the following array formula to get the position of the first lower case letter:
      =MATCH(1,IF(ABS(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))-109.5)<=12.5,1),0)
      Please remember to press Ctrl + Shift + Enter keys together.


      Hope it can help you ,thank you!
      • To post as a guest, your comment is unpublished.
        Meharban singh pal · 1 years ago
        Hi skyyang

        it's working properly .....
        actually i wanted same thing..

        many thanks !!


        Meharban singh pal
  • To post as a guest, your comment is unpublished.
    Hanuman Singh · 2 years ago
    I have data like 1. show below in a single cell and I want to like 2.
    1. ZERPUR,MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653, ZERPUR(16),MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653
    I need this like :-
    ZERPUR,MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653

    Thanks & Regards
    Hanuman Singh
    9034509168
  • To post as a guest, your comment is unpublished.
    Mitch L · 2 years ago
    Thanks for this code - it saved me a ton of time.
  • To post as a guest, your comment is unpublished.
    Simon Alexander · 2 years ago
    This is an awesome and simple solution to finding duplicate phrases within a single cell, much easier than some of the long-winded macro solutions I found while looking for an answer to my problem, thank you!
  • To post as a guest, your comment is unpublished.
    Archana Nahak · 2 years ago
    This is very helpful . I have tried it and it works for me as excepted.
    Excellent !!!!
  • To post as a guest, your comment is unpublished.
    Alastair · 2 years ago
    Just like to save thank you so much for this guide, saved me a lot of work! :)
  • To post as a guest, your comment is unpublished.
    Eka Sari · 2 years ago
    Is it possible to adjust the function if there is a certain word I want to keep duplicated while the rest are not duplicated?
  • To post as a guest, your comment is unpublished.
    Joni · 2 years ago
    Hy dude i need your help. What should i do if iwant extract the duplicate?
    In
    A1 (asdfghjiklkk)
    So k is duplicated character
    I want A2 (k) what should i do?
  • To post as a guest, your comment is unpublished.
    Suresh · 3 years ago
    Awesome, Thank you!.....
  • To post as a guest, your comment is unpublished.
    Leila · 3 years ago
    BRILLIANT
    thank you! thank you! thank you!
  • To post as a guest, your comment is unpublished.
    Rana · 3 years ago
    Hello, please I need your help, i tried your code but it didnt work, maybe because I have numbers
    I have duplicate telephone numbers separated by commas
    Please tell me what to do

    Thanks
  • To post as a guest, your comment is unpublished.
    Charlie Keyloe · 3 years ago
    Your advice is amazing! I sorted 58,400 records in about 2 minutes and saved one week (or more) of work. My duplicates were a bit harder turning this example " V&O Liquid Fuel Lantern 13-1/2in blk fuel lantern " into this " V&O Liquid Fuel Lantern 13-1/2in blk " thank you.
  • To post as a guest, your comment is unpublished.
    john galt · 4 years ago
    is this thread still alive? I would greatly appreciate some insight with this VBA function..
    my questions has to do with the code, where if at all do i need to instruct it to find the specific punctuation as the delimiter.. if I were to use "@" as the punctuation?
  • To post as a guest, your comment is unpublished.
    Lisa Robinson · 4 years ago
    I tried your solution "Remove duplicate words separated by punctuation with User Defined Function" and it works great for multiple words in a cell BUT doesn't completely solve my problem. I have one cell that has multiple values and want to compare against another cell with multiple values and then have it remove the duplicates that exist between the two cells. Is there a way to do that?
  • To post as a guest, your comment is unpublished.
    milworker · 4 years ago
    And I combined RemoveDupes with ConCat (the VBA goodness, not CON(I-SUCK-BECAUSE-I'M-MICROSOFT)CATENATE) into this:

    =RemoveDupes(ConCat(",",G495:G502),",") so it pulled my cells in and then wiped all of the dupes out. Thanks for the RemoveDupes, here's ConCat:

    Function ConCat(Delimiter As Variant, ParamArray CellRanges() As Variant) As String

    Dim Cell As Range, Area As Variant

    If IsMissing(Delimiter) Then Delimiter = ""

    For Each Area In CellRanges
    If TypeName(Area) = "Range" Then
    For Each Cell In Area
    If Len(Cell.Value) Then ConCat = ConCat & Delimiter & Cell.Value
    Next
    Else
    ConCat = ConCat & Delimiter & Area
    End If
    Next

    ConCat = Mid(ConCat, Len(Delimiter) + 1)
    End Function
  • To post as a guest, your comment is unpublished.
    milworker · 4 years ago
    Nevermind, I'm dumb. Because I only wanted words pulled I renamed the module RemoveDupes, but didn't change the RemoveDupes later in the code. Fixed, smacking self with hammer....
  • To post as a guest, your comment is unpublished.
    milworker · 4 years ago
    Still broke... doesn't actually show anything. Here's my cell data:

    27000,Basic,Products,Materials,From,Wood,Stone,Earthen,Raw,Materials,27100,Basic,Forest,Products,General,27110,Basic,Forest,Products,Sawmill,Products,27120,Basic,Forest,Products,Wood,Pulp,27200,Glass

    Clearly have some dupes there. Leaves the cell blank. Thoughts?