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

Hur tar man bort dubbla tecken eller ord i en cellsträng?

Antag att det finns dubbla tecken eller ord i varje cell, och du vill ta bort dubbletterna och lämna bara unika tecken eller ord. Hur kunde du lösa detta problem i Excel?

Ta bort dubbla tecken i textsträngen med användardefinierad funktion

Ta bort dubbla ord åtskilda med skiljetecken med användardefinierad funktion


pil blå höger bubbla Ta bort dubbla tecken i textsträngen med användardefinierad funktion

Om du har en lista med textsträng måste du ta bort de dubbla tecknen enligt följande skärmdump. Här kan jag prata om en VBA-kod för att hantera den.

doc-remove-duplicate-characters-1

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: Ta bort dubbla tecken i textsträngen i en cell

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. Spara och stäng sedan den här koden, gå tillbaka till kalkylbladet och ange den här formeln = borttagen1 (A2) (A2 är den datacell som du vill ta bort dubbletter från) till en tom cell förutom dina data, se skärmdump:

doc-remove-duplicate-characters-1

4. Och dra sedan fyllningshandtaget till de intervallceller som du vill använda den här formeln, alla dubbeltecken har tagits bort från varje cell omedelbart.

doc-remove-duplicate-characters-1


pil blå höger bubbla Ta bort dubbla ord åtskilda med skiljetecken med användardefinierad funktion

Om det finns några ord som skiljs åt av vissa skiljetecken i en cell, kan du också ta bort dubbletterna som du vill. Gör med följande steg:

1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic for Applications-fönstret.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulfönster.

VBA-kod: Ta bort dubbla ord åtskilda av skiljetecken i en cell

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. Spara och stäng sedan den här koden, återgå till kalkylbladet och ange den här formeln = RemoveDupes2 (A2, ",") i en tom cell bredvid dina data, se skärmdump:

doc-remove-duplicate-characters-1

4. Kopiera sedan formeln till dina celler som behövs, och alla dubbletter har tagits bort från alla celler. Se skärmdump:

doc-remove-duplicate-characters-1

Anmärkningar: I ovanstående formel, A2 anger cellen som du vill använda och kommatecknet (,) står för skiljetecknet som skiljer orden i en cell, du kan ändra det till andra skiljetecken efter ditt behov.


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (66)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Fortfarande trasig... visar faktiskt ingenting. Här är mina celldata: 27000,Basic,Produkter,Material,Från,Trä,Sten,Earthen,Raw,Materials,27100,Basic,Skog,Produkter,Allmänt,27110,Basic,Skog,Produkter,Såverk,Products,27120,Basic ,Skog,Produkter,Trä,Pulp,27200,Glas Har helt klart några duper där. Lämnar cellen tom. tankar?
Denna kommentar minimerades av moderatoren på webbplatsen
Strunt i, jag är dum. Eftersom jag bara ville dra ord döpte jag om modulen RemoveDupes, men ändrade inte RemoveDupes senare i koden. Fast, smackande själv med hammare....
Denna kommentar minimerades av moderatoren på webbplatsen
Och jag kombinerade RemoveDupes med ConCat (VBA-godheten, inte CON(I-SUCK-BECAUSE-JAG-MICROSOFT)CATENATE) till detta: =RemoveDupes(ConCat(",",G495:G502),",") så den drog in mina celler och raderade sedan alla duperingar. Tack för RemoveDupes, här är ConCat: Funktion ConCat(Delimiter As Variant, ParamArray CellRanges() As Variant) As String Dim Cell As Range, Area As Variant If IsMissing(Delimiter) Then Delimiter = "" För varje område i CellRanges If TypeName( Area) = "Range" Then For Every 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) Avsluta funktion
Denna kommentar minimerades av moderatoren på webbplatsen
Jag försökte din lösning "Ta bort dubbletter av ord separerade av skiljetecken med användardefinierad funktion" och den fungerar utmärkt för flera ord i en cell MEN löser inte helt mitt problem. Jag har en cell som har flera värden och vill jämföra mot en annan cell med flera värden och sedan få den att ta bort de dubbletter som finns mellan de två cellerna. Finns det något sätt att göra det?
Denna kommentar minimerades av moderatoren på webbplatsen
samma här snälla hjälp
Denna kommentar minimerades av moderatoren på webbplatsen
lever denna tråd fortfarande? Jag skulle mycket uppskatta lite insikt med denna VBA-funktion.. mina frågor har att göra med koden, där om jag överhuvudtaget behöver instruera den för att hitta den specifika skiljetecken som avgränsare.. om jag skulle använda "@" som skiljetecken?
Denna kommentar minimerades av moderatoren på webbplatsen
Ditt råd är fantastiskt! Jag sorterade 58,400 2 poster på cirka 13 minuter och sparade en veckas (eller mer) arbete. Mina dubbletter var lite svårare att förvandla det här exemplet " V&O Liquid Fuel Lantern 1-2/13in blk fuel lantern " till denna " V&O Liquid Fuel Lantern 1-2/XNUMXin blk " tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, snälla, jag behöver din hjälp, jag försökte din kod men det fungerade inte, kanske för att jag har nummer jag har dubbletter av telefonnummer separerade med kommatecken Snälla berätta för mig vad jag ska göra Tack
Denna kommentar minimerades av moderatoren på webbplatsen
samma här snälla hjälp
Denna kommentar minimerades av moderatoren på webbplatsen
BRILJANT tack! tack! tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Fantastiskt, tack!.....
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag behöver din hjälp. Vad ska jag göra om jag vill extrahera dubbletten? I A1 (asdfghjiklkk) Så k är duplicerad karaktär Jag vill ha A2 (k) vad ska jag göra?
Denna kommentar minimerades av moderatoren på webbplatsen
Går det att justera funktionen om det finns ett visst ord jag vill behålla duplicerat medan resten inte dupliceras?
Denna kommentar minimerades av moderatoren på webbplatsen
Vill bara spara tack så mycket för den här guiden, sparade mig mycket arbete! :)
Denna kommentar minimerades av moderatoren på webbplatsen
Detta är mycket användbart. Jag har provat det och det fungerar för mig som undantag. Utmärkt!!!!
Denna kommentar minimerades av moderatoren på webbplatsen
Det här är en fantastisk och enkel lösning för att hitta dubbla fraser i en enda cell, mycket lättare än några av de långrandiga makrolösningarna jag hittade när jag letade efter ett svar på mitt problem, tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för den här koden - det sparade mig massor av tid.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har data som 1. visas nedan i en enda cell och jag vill gilla 2. 1. ZERPUR,MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653, ZERPUR(16),MAHENDRAGARH, HARYANA-123029, 30771237 gillar:- ZERPUR,MAHENDRAGARH, HARYANA-8813073653, 123029, 30771237 Tack och hälsningar Hanuman Singh 8813073653
Denna kommentar minimerades av moderatoren på webbplatsen
lära mig hur? måste veta det också..
Denna kommentar minimerades av moderatoren på webbplatsen
kan vi ta reda på positionen för den första gemena bokstaven


Exam - RAMSHsJHSAhsjDDD ------Jag vill veta positionen för den första lilla bokstaven med formel = s
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Meharban,
Du kan använda följande matrisformel för att få positionen för den första gemena bokstaven:
=MATCH(1,IF(ABS(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))-109.5)<=12.5,1),0)
Kom ihåg att trycka på Ctrl + Shift + Enter samtidigt.


Hoppas det kan hjälpa dig, tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej skyyang

det fungerar som det ska.....
egentligen ville jag samma sak..

tack så mycket !!


Meharban singh kompis
Denna kommentar minimerades av moderatoren på webbplatsen
Hur man tar bort matchade strängdubbletter ... kan du berätta för mig


Hälsningar,
Kiran
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Kiran,
Kan du ge ett exempel på ditt problem? Eller så kan du infoga en bifogad bild.
Ser fram emot ditt svar!
Denna kommentar minimerades av moderatoren på webbplatsen
tack så mycket, det hjälper mig mer. Men jag vill ha lite mer specifikt för min datauppsättning.
Jag har två kolumnerdata. ID och info. I infokolumnen upprepas projekt-id per cell som "Kant-, Udp-, Akr- etc". För min datauppsättning är project_id mer än 15 och det fixat. Så jag vill ta bort repeated_id från cellen men behålla den första.
Exempel: 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)

Exempelbild bifogas här. Finns det någon lösning på detta.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Imran,
Förlåt för att du inte löste ditt problem, om någon har en bra idé, vänligen kommentera här.
Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har en egen lösning. Jag har använt SUBSTITUTE-formeln här, men den är för stor för mina data. så upprepa det två eller tre gånger för att få rätt resultat.

=SUBSTITUTE(SUBSTITUTE("Kant-","",2), ("Kant-","",2)
Här, 1:a 2 för andra Kant- ersättning och för nästa varje Kant-borttagning lägg bara till ("Kant-","",2) extra. Det fungerar för mig. Men jag föredrar en bra VBA.
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för koden.

Kan du vara snäll och hjälpa mig? Jag använder makrofunktionen för att ta bort ord som separeras av skiljetecken i en cell, men mina data är inte ord som faktiskt är fraser. Som att istället för "KTE, KTO, KTW, KTO" faktiskt är korta beskrivningar som "förbered en räkning, granska mina e-postmeddelanden, uppdatera kontrakten, granska mina e-postmeddelanden".

Skulle det vara möjligt att uppdatera VBA för att ta bort dubblerade fraser istället för ord?

Stort tack, detta kommer faktiskt att vara till stor hjälp.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Alonso,
För att ta bort duplicerad fras kan följande användardefinierade funktion hjälpa dig, försök det.

Funktion RemoveDuplicateValue(xStr As String, xDelim As String) As String
Dim xVärde
Om (Len(xDelim) > 0) Och (Len(Trim(xStr)) > 0) Då
Med CreateObject("Scripting.Dictionary")
För varje xValue In Split(xStr, xDelim)
Om Trim(xValue) <> "" Och Inte .exists(Trim(xValue)) Då .Add Trim(xValue), Ingenting
Nästa
Om .Count > 0 Då RemoveDuplicateValue = Join(.keys, xDelim)
Sluta med
annars
RemoveDuplicateValue = xStr
End If
Änden Funktion

Använd sedan denna formel: =RemoveDuplicateValue(A2,","), ändra separatorn till din egen.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej skyyang,



Jag hoppas kunna få hjälp med följande cell:

PR-PUERTO RICO; USA–Förenta staterna; USA–Förenta staterna

Jag behöver ta bort dubbletten USA-Förenta staterna eftersom mitt uppladdningsverktyg inte tillåter dubbletter.



Jag använde ovanstående VBA och ersatte min formelavgränsare med ";". Är bindestrecket som gör att detta har ett problem? Det returnerar #NAME? när jag kör formeln. Jag är ny på makron/VBA men jag såg till att filen sparades som en makroaktiverad fil. Jag försökte verkligen följa dessa till T.


Tack för all denna redan fantastiska information eftersom den har hjälpt till med ett annat projekt som jag också var tvungen att slutföra och allt ytterligare uppskattas mycket.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Michael,
Menar du att ta bort alla duplicerade fraser från en cell och bara lämna de unika?
Ser fram emot ditt svar!
Denna kommentar minimerades av moderatoren på webbplatsen
Detta är utgången jag letar efter:

Aktuell: PR-PUERTO RICO; USA–Förenta staterna; USA–Förenta staterna
Önskat: PR-PUERTO RICO; USA–Förenta staterna

Hoppas detta är vettigt och tack så mycket för det snabba svaret.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Michael,
Du behöver bara använda koden nedan och sedan använda den här formeln: =RemoveDuplicateValue(A2,";"). Försök gärna, hoppas det kan hjälpa dig!

Funktion RemoveDuplicateValue(xStr As String, xDelim As String) As String
Dim xVärde
Om (Len(xDelim) > 0) Och (Len(Trim(xStr)) > 0) Då
Med CreateObject("Scripting.Dictionary")
För varje xValue In Split(xStr, xDelim)
Om Trim(xValue) <> "" Och Inte .exists(Trim(xValue)) Då .Add Trim(xValue), Ingenting
Nästa
Om .Count > 0 Då RemoveDuplicateValue = Join(.keys, xDelim)
Sluta med
annars
RemoveDuplicateValue = xStr
End If
Änden Funktion
Denna kommentar minimerades av moderatoren på webbplatsen
Tack så mycket. Ditt svar var mer välkommet än min kopp kaffe!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej detta är verkligen användbart
Men jag vill ta bort hela ord efter "NEJ TILL:"

t.ex.: NEJ TILL: [C11bx1]

NEJ TILL: [C11bx3] gillar det här
Det finns inga kommentarer här ännu
Ladda fler
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL