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

Hvordan fjernes duplikattegn eller ord i en cellestreng?

Antag at der er duplikerede tegn eller ord i hver celle, og du vil fjerne duplikaterne og kun efterlade unikke tegn eller ord. Hvordan kunne du løse dette problem i Excel?

Fjern duplikat af tekststreng med brugerdefineret funktion

Fjern duplikerede ord adskilt ved tegnsætning med brugerdefineret funktion


pil blå højre boble Fjern duplikat af tekststreng med brugerdefineret funktion

Hvis du har en liste med tekststreng, skal du nu fjerne de duplikerede tegn som vist på følgende skærmbillede. Her kan jeg tale om en VBA-kode for at håndtere den.

doc-remove-duplicate-characters-1

1. Hold nede ALT + F11 nøgler til at åbne Vinduet Microsoft Visual Basic til applikationer.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

VBA-kode: Fjern duplikattegn af tekststreng i en celle

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. Gem og luk derefter denne kode, gå tilbage til regnearket og indtast denne formel = fjernetupes1 (A2) (A2 er den datacelle, du vil fjerne dubletter fra) i en tom celle udover dine data, se skærmbillede:

doc-remove-duplicate-characters-1

4. Og træk derefter fyldhåndtaget over til de områdeceller, du vil anvende denne formel, alle de dobbelte tegn er straks fjernet fra hver celle.

doc-remove-duplicate-characters-1


pil blå højre boble Fjern duplikerede ord adskilt ved tegnsætning med brugerdefineret funktion

Hvis der er nogle ord, der er adskilt af bestemte tegnsætningstegn i en celle, kan du også fjerne de duplikerede ord, som du vil. Benyt følgende trin:

1. Hold nede i ALT + F11 nøgler til at åbne Vinduet Microsoft Visual Basic til applikationer.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

VBA-kode: Fjern duplikerede ord adskilt ved tegnsætning af en celle

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. Gem derefter og luk denne kode, vend tilbage til regnearket, og indtast denne formel = FjernDupes2 (A2, ",") i en tom celle ved siden af ​​dine data, se skærmbillede:

doc-remove-duplicate-characters-1

4. Kopier derefter formlen ned til dine nødvendige celler, og alle de duplikerede ord er blevet fjernet fra alle celler. Se skærmbillede:

doc-remove-duplicate-characters-1

Bemærk: I ovenstående formel A2 angiver den celle, du vil bruge, og kommaet (,) står for tegnsætningstegnet, der adskiller ordene i en celle, du kan ændre det til andre tegnsætninger efter dit behov.


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (66)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
Stadig knækket... viser faktisk ikke noget. Her er mine celledata: 27000,Grundlæggende,Produkter,Materialer,Fra,Træ,Sten,Jord,Rå,Materialer,27100,Basic,Skov,Produkter,Generelt,27110,Basic,Skov,Produkter,Savværk,Produkter,27120,Basic ,Skov,Produkter,Træ,Pulp,27200,Glas Har klart nogle duper der. Efterlader cellen tom. tanker?
Denne kommentar blev minimeret af moderatoren på webstedet
Pyt, jeg er dum. Fordi jeg kun ville have ord trukket, omdøbte jeg modulet RemoveDupes, men ændrede ikke RemoveDupes senere i koden. Fast, smækkende selv med hammer....
Denne kommentar blev minimeret af moderatoren på webstedet
Og jeg kombinerede RemoveDupes med ConCat (VBA-godheden, ikke CON(I-SUCK-BECAUSE-I'M-MICROSOFT)CATENATE) til dette: =RemoveDupes(ConCat(",",G495:G502),",") så den trak mine celler ind og tørrede derefter alle duper ud. Tak for RemoveDupes, her er ConCat: Funktion ConCat(Delimiter As Variant, ParamArray CellRanges() As Variant) As String Dim Cell As Range, Area As Variant If IsMissing(Delimiter) Then Delimiter = "" For hvert 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) Afslut funktion
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg prøvede din løsning "Fjern duplikerede ord adskilt af tegnsætning med brugerdefineret funktion", og det fungerer godt til flere ord i en celle, MEN løser ikke helt mit problem. Jeg har en celle, der har flere værdier og vil sammenligne med en anden celle med flere værdier og derefter få den til at fjerne de dubletter, der findes mellem de to celler. Er der en måde at gøre det på?
Denne kommentar blev minimeret af moderatoren på webstedet
samme her pls hjælp
Denne kommentar blev minimeret af moderatoren på webstedet
lever denne tråd stadig? Jeg ville sætte stor pris på lidt indsigt med denne VBA-funktion.. mine spørgsmål har at gøre med koden, hvor hvis jeg overhovedet skal instruere den for at finde den specifikke tegnsætning som skilletegn.. hvis jeg skulle bruge "@" som tegnsætningen?
Denne kommentar blev minimeret af moderatoren på webstedet
Dit råd er fantastisk! Jeg sorterede 58,400 poster på cirka 2 minutter og sparede en uge (eller mere) arbejde. Mine dubletter var lidt sværere at forvandle dette eksempel "V&O Liquid Fuel Lantern 13-1/2in blk fuel lanterne" til denne "V&O Liquid Fuel Lantern 13-1/2in blk" tak.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg har brug for din hjælp, jeg prøvede din kode, men den virkede ikke, måske fordi jeg har numre, jeg har dublerede telefonnumre adskilt af kommaer Fortæl mig, hvad jeg skal gøre Tak
Denne kommentar blev minimeret af moderatoren på webstedet
samme her pls hjælp
Denne kommentar blev minimeret af moderatoren på webstedet
GENIALT tak! tak skal du have! tak skal du have!
Denne kommentar blev minimeret af moderatoren på webstedet
Fantastisk, tak!.....
Denne kommentar blev minimeret af moderatoren på webstedet
Hej dude jeg har brug for din hjælp. Hvad skal jeg gøre, hvis jeg vil udtrække duplikatet? I A1 (asdfghjiklkk) Så k er duplikeret tegn Jeg vil have A2 (k) hvad skal jeg gøre?
Denne kommentar blev minimeret af moderatoren på webstedet
Er det muligt at justere funktionen, hvis der er et bestemt ord, jeg vil beholde duplikeret, mens resten ikke er duplikeret?
Denne kommentar blev minimeret af moderatoren på webstedet
Bare gerne spare tak så meget for denne guide, sparede mig for meget arbejde! :)
Denne kommentar blev minimeret af moderatoren på webstedet
Dette er meget nyttigt. Jeg har prøvet det, og det virker for mig som undtaget. Fremragende!!!!
Denne kommentar blev minimeret af moderatoren på webstedet
Dette er en fantastisk og enkel løsning til at finde duplikerede sætninger i en enkelt celle, meget nemmere end nogle af de langhåret makroløsninger, jeg fandt, mens jeg ledte efter et svar på mit problem, tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for denne kode - det sparede mig en masse tid.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har data som 1. vist nedenfor i en enkelt celle, og jeg vil gerne kunne lide 2. 1. ZERPUR,MAHENDRAGARH, HARYANA-123029, 30771237, 8813073653, ZERPUR(16),MAHENDRAGARH, HARYANA-123029 som:- ZERPUR,MAHENDRAGARH, HARYANA-30771237, 8813073653, 123029 Tak og hilsen Hanuman Singh 30771237
Denne kommentar blev minimeret af moderatoren på webstedet
lære mig hvordan? skal også vide det..
Denne kommentar blev minimeret af moderatoren på webstedet
kan vi finde ud af placeringen af ​​1. Små bogstav


Eksamen - RAMSHsJHSAhsjDDD ------Jeg vil gerne vide placeringen af ​​1. lille bogstav ved formel = s
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Meharban,
Du kan anvende følgende matrixformel for at få placeringen af ​​det første lille bogstav:
=MATCH(1,IF(ABS(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))-109.5)<=12.5,1),0)
Husk at trykke på Ctrl + Shift + Enter samtidig.


Håber det kan hjælpe dig, tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej skyyang

det fungerer korrekt.....
faktisk ville jeg det samme..

mange tak !!


Meharban singh ven
Denne kommentar blev minimeret af moderatoren på webstedet
Hvordan man fjerner matchede strengduplikater...kan du venligst fortælle mig


Hilsen,
Kiran
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Kiran,
Kan du give et eksempel på dit problem? Eller du kan indsætte et vedhæftet billede.
Ser frem til dit svar!
Denne kommentar blev minimeret af moderatoren på webstedet
mange tak, det hjælper mig mere. Men jeg vil gerne have noget mere specifikt til mit datasæt.
Jeg har to kolonner-data. ID og info. I infokolonnen gentages projekt-id pr. celle som "Kant-, Udp-, Akr- etc". For mit datasæt er project_id mere end 15, og det er rettet. Så jeg vil slette repeated_id fra celle, men beholde den første.
Eksempel: 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)

Eksempelbillede er vedhæftet her. Er der nogen løsning på dette.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Imran,
Beklager, at jeg ikke fik løst dit problem, hvis nogen har den gode idé, så kommenter gerne her.
Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg har selv en løsning. Jeg har brugt SUBSTITUTE formel her, men den er for stor til mine data. så gentag det to eller tre gange for at få det rigtige resultat.

=SUBSTITUTE(SUBSTITUTE("Kant-","",2), ("Kant-","",2)
Her, 1. 2 for anden Kant- udskiftning og for næste hver Kant-fjernelse skal du blot tilføje ("Kant-","",2) ekstra. Det virker for mig. Men jeg foretrækker en god VBA.
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for koden.

Kan du hjælpe mig? Jeg bruger makrofunktionen til at fjerne ord adskilt af tegnsætning af en celle, men mine data er ikke ord, der faktisk er sætninger. Ligesom i stedet for "KTE, KTO, KTW, KTO" er faktisk korte beskrivelser som "forbered en regning, gennemgå mine e-mails, opdater kontrakterne, gennemgå mine e-mails".

Ville det være muligt at opdatere VBA for at fjerne duplikerede sætninger i stedet for ord?

Mange tak, det vil faktisk være meget nyttigt.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Alonso,
For at fjerne en dublet sætning kan den følgende brugerdefinerede funktion måske hjælpe dig, prøv det.

Funktion RemoveDuplicateValue(xStr As String, xDelim As String) As String
Dim xVærdi
Hvis (Len(xDelim) > 0) Og (Len(Trim(xStr)) > 0) Så
Med CreateObject("Scripting.Dictionary")
For hver xVærdi i Split(xStr, xDelim)
Hvis Trim(xValue) <> "" And Not .exists(Trim(xValue)) Så .Add Trim(xValue), Intet
Næste
Hvis .Count > 0 Så RemoveDuplicateValue = Join(.keys, xDelim)
Slut med
Else
RemoveDuplicateValue = xStr
End If
End Function

Anvend derefter denne formel: =RemoveDuplicateValue(A2,","), skift separatoren til din egen.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej skyyang,



Jeg håber på at få hjælp til følgende celle:

PR-PUERTO RICO; USA-USA; USA-USA

Jeg har brug for, at duplikatet USA-USA skal fjernes, da mit uploadværktøj ikke tillader dubletter.



Jeg brugte ovenstående VBA og erstattede min formel afgrænser med ";". Er bindestregen årsag til, at dette har et problem? Det returnerer #NAVN? hver gang jeg kører formlen. Jeg er ny til makroer/VBA, men jeg sørgede for, at filen blev gemt som en makroaktiveret fil. Jeg prøvede virkelig at følge disse til T.


Tak for al denne allerede fantastiske information, da den har hjulpet med et andet projekt, jeg også skulle gennemføre, og alt yderligere er meget værdsat.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Michael,
Mener du at fjerne alle duplikerede sætninger fra en celle og kun lade de unikke være?
Ser frem til dit svar!
Denne kommentar blev minimeret af moderatoren på webstedet
Dette er det output jeg leder efter:

Aktuel: PR-PUERTO RICO; USA-USA; USA-USA
Ønskes: PR-PUERTO RICO; USA-USA

Håber det giver mening og mange tak for det hurtige svar.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Michael,
Du skal blot anvende nedenstående kode og derefter bruge denne formel: =RemoveDuplicateValue(A2,";"). Prøv venligst, håber det kan hjælpe dig!

Funktion RemoveDuplicateValue(xStr As String, xDelim As String) As String
Dim xVærdi
Hvis (Len(xDelim) > 0) Og (Len(Trim(xStr)) > 0) Så
Med CreateObject("Scripting.Dictionary")
For hver xVærdi i Split(xStr, xDelim)
Hvis Trim(xValue) <> "" And Not .exists(Trim(xValue)) Så .Add Trim(xValue), Intet
Næste
Hvis .Count > 0 Så RemoveDuplicateValue = Join(.keys, xDelim)
Slut med
Else
RemoveDuplicateValue = xStr
End If
End Function
Denne kommentar blev minimeret af moderatoren på webstedet
Mange tak. Dit svar var mere velkomment end min kop kaffe!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej dette er virkelig nyttigt
Men jeg vil gerne fjerne hele ord efter "NEJ TIL:"

fx: NEJ TIL: [C11bx1]

NEJ TIL: [C11bx3] kan lide dette
Der er endnu ingen kommentarer her
Load More
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL