Indholdsfortegnelse
Der er tre måder at finde og slette dubletter i en celle i Excel på. Vælg den måde, der fungerer bedst for dig.
Når det drejer sig om at fjerne dobbelte værdier eller rækker, tilbyder Microsoft Excel en række forskellige muligheder. Men når det drejer sig om at fjerne identisk tekst i en given celle, tilbyder Excel... intet. Ingen værktøjer, ingen funktioner, ingen formler, intet. Vil det forhindre os i at nå vores mål? På ingen måde. Hvis Excel ikke har den funktion, vi har brug for, så lad os skrive vores egen :)
Sådan fjerner du gentagne ord i Excel-cellen
Problem : Du har de samme ord eller tekststrenge i en celle, og du vil gerne fjerne den anden og alle efterfølgende gentagelser.
Løsning : en brugerdefineret brugerdefineret funktion eller en VBA-makro.
Brugerdefineret funktion til at fjerne dubletter i en celle
Hvis du vil fjerne dobbelt tekst i en celle, kan du bruge følgende brugerdefinerede funktion (UDF), der hedder 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 ThenRemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End FunctionSådan indsætter du funktionens kode i din projektmappe
For at tilføje ovenstående kode til din Excel skal du gøre følgende:
- Tryk på Alt + F11 for at åbne Visual Basic-editoren.
- Højreklik på i venstre rude på ThisWorkbook og vælg Indsæt > Modul .
- Indsæt ovenstående kode i Kode vindue.
Du kan finde flere oplysninger under Sådan indsætter du VBA-kode i Excel.
Syntaks for funktionen RemoveDupeWords
Vores nyoprettede funktion til at fjerne dobbelt tekst i en celle har følgende syntaks:
RemoveDupeWords(text, [delimiter])Hvor:
- Tekst (påkrævet) - en streng eller celle, hvorfra du vil slette gentagen tekst.
- Afgrænser (valgfrit) - den afgrænser, som den gentagne tekst adskilles af. Hvis den udelades, anvendes et mellemrum som afgrænser.
Funktionen er ikke skivensitiv , hvilket betyder, at små og store bogstaver behandles som de samme tegn.
Sådan bruger du funktionen RemoveDupeWords
Når funktionens kode er tilføjet til din projektmappe, kan du bruge den i dine formler på samme måde, som du bruger Excels indbyggede funktioner.
Du skal bare begynde at skrive funktionens navn efter ligetegnet, så vises det i formelintelligensen. Dobbeltklik på funktionen, så indsættes den i en celle. Definer argumenterne, skriv den afsluttende parentes, tryk på Enter , og så er din formel færdig.
Hvis du f.eks. vil slette dobbelte ord adskilt af et komma og et mellemrum i A2, skal du indtaste nedenstående formel i B2 og derefter trække den ned gennem så mange celler som nødvendigt:
=RemoveDupeWords(A2, ", ")
Resultatet er en liste over unikke ord eller delstrenge adskilt af en komma og mellemrum :
Hvis du hellere vil have en kommasepareret liste, skal du bruge kun et komma til afgrænseren:
=RemoveDupeWords(A2, ",")
Hvis dine kildedata er adskilt af et rum , det andet argument skal være " " eller udelades:
=RemoveDupeWords(A2)
Som enhver anden Excel-funktion genberegner vores UDF automatisk, når kildedataene ændres, så dine resultater altid er opdaterede.
VBA-makro til at slette duplikeret tekst fra flere celler på én gang
Hvis du ønsker at fjerne gentagen tekst fra flere celler på én gang, kan du kalde RemoveDupeWords funktionen fra en makro. I dette tilfælde er afgrænseren fastkodet, og du skal opdatere makroens kode, hver gang afgrænseren ændres. Alternativt kan du skrive et par kodevarianter for de mest almindelige afgrænsere, f.eks. et mellemrum, komma eller komma og mellemrum, og give dine makroer meningsfulde navne, f.eks. RemoveDupesDelimSpace .
Makroens kode er som følger:
Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubI ovenstående kode er afgrænseren en komma og mellemrum Hvis du vil bruge en anden afgrænser, skal du erstatte ", " med et eller flere andre tegn i denne kodelinje:
cell.Value = RemoveDupeWords(cell.Value, ", ", ")
Bemærk: For at makroen kan fungere, skal dens kode og koden for RemoveDupeWords-funktionen placeres i det samme modul.
Sådan bruger du makroen
Indsæt makroens kode i din egen arbejdsbog eller åbn vores eksempelarbejdsbog med koden, og udfør derefter følgende trin for at køre makroen.
- Vælg en række celler, som du vil fjerne gentagen tekst fra.
- Tryk på Alt + F8 for at åbne Makro dialogboksen.
- På listen over makroer skal du vælge FjernDupeWords2 .
- Klik på Kør .
Du kan finde flere oplysninger under Sådan kører du en makro i Excel.
Bemærk. Da en makrohandling kan ikke gøres om anbefaler vi på det kraftigste, at du gemmer din projektmappe, lige før du bruger makroen. Hvis noget går galt, kan du på denne måde blot lukke og genåbne projektmappen, og så er du tilbage præcis, hvor du var. Du kan også bare lave en kopi af de regneark, der kan blive påvirket af makroen.
Sådan fjernes duplikerede tegn i en celle
Problem : Du har flere forekomster af det samme tegn i en celle, mens hver celle kun bør indeholde en enkelt forekomst af et givet tegn.
Løsning : en brugerdefineret brugerdefineret funktion eller en VBA-makro.
Brugerdefineret funktion til at slette gentagne tegn
Hvis du vil fjerne duplikerede tegn i en celle, der kun beholder de første forekomster, kan du bruge følgende brugerdefinerede funktion, der hedder 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 FunctionHvis du vil indsætte funktionens kode i din projektmappe, er trinene nøjagtig de samme som i det foregående eksempel.
Syntaks for funktionen RemoveDupeChars
Syntaksen for denne brugerdefinerede funktion er så enkel som overhovedet muligt - der kræves kun ét argument:
RemoveDupeChars(text)Hvor tekst er en streng eller celle, hvorfra du ønsker at fjerne dobbelte tegn.
Funktionen er skraldefølsom og behandler små og store bogstaver som forskellige tegn.
Sådan bruger du funktionen RemoveDupeChars
Alt, hvad vi har sagt om brugen af RemoveDupeWords, gælder også for RemoveDupeChars Så uden at komme for meget ind på teorien, lad os komme direkte til et eksempel.
Hvis du vil slette dobbelte tegn fra kolonne A, der begynder i A2, skal du indtaste denne formel i B2 og kopiere den nedad:
=RemoveDupeChars(A2)
Som du kan se på billedet nedenfor, håndterer funktionen med succes forskellige tegntyper, herunder bogstaver, cifre og specialsymboler:
Tip. Hvis dine figurer er adskilt fra hinanden af nogle afgrænser som f.eks. et mellemrum, komma eller bindestreg, så skal du bruge RemoveDupeWords funktion som vist i det foregående eksempel.
VBA-makro til at fjerne de samme tegn fra en celle
Som RemoveDupeWords , den RemoveDupeChars funktionen kan også kaldes fra en makro:
Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End SubDa denne UDF ikke bruger nogen afgrænsere, behøver du ikke foretage nogen justeringer i koden.
Bemærk: For at makroen kan fungere, skal dens kode og koden for RemoveDupeChars UDF'en placeres i det samme modul i VBA-editoren.
Sådan bruger du makroen
Hvis du allerede har indsat makroens kode i din projektmappe eller åbnet vores eksempelprojektmappe med koden, skal du starte makroen på denne måde.
- Vælg en række celler, som du vil fjerne gentagne tegn fra.
- Tryk på Alt + F8 for at åbne Makro dialogboksen.
- På listen over makroer skal du vælge RemoveDupeChars2 .
- Klik på Kør .
Fjern duplikerede delstrenge med Ultimate Suite
I begyndelsen af denne vejledning blev det nævnt, at Microsoft Excel ikke har en indbygget funktion til at fjerne dubletter i en celle. Men det har vores Ultimate Suite!
Du kan finde den i Duplicate Remover drop-down-menuen på Ablebits Data under fanen, i fanen Dedupe gruppe. Hvis den Fjern duplikerede understrenge ikke vises i din Excel, skal du sikre dig, at du har den nyeste version af Ultimate Suite installeret (du kan downloade en gratis prøveversion her).
Hvis du vil fjerne gentagne ord eller tekst fra flere celler på 5 sekunder (et sekund pr. trin :), skal du gøre følgende:
- Vælg dine kildedata, og start Fjern duplikerede understrenge værktøj.
- Angiv den afgrænser .
- Definer, om der skal behandles fortløbende afgrænsere som et (standard).
- Vælg, om du vil udføre skraldefølsom eller skift mellem store og små bogstaver søgning.
- Klik på Fjern .
Færdig! Ingen VBA eller formler, bare hurtige og præcise resultater.
Hvis du vil vide mere om dette fantastiske tilføjelsesprogram, kan du besøge dets hjemmeside. Eller endnu bedre, download en evalueringsversion nedenfor og prøv det!
Sådan fjerner du dobbelt tekst i en celle. Jeg takker for din læsning og håber at se dig på vores blog i næste uge!
Tilgængelige downloads
Eksempler på at fjerne dubletter i celle (.xlsm-fil)
Ultimate Suite 14-dages fuldt funktionsdygtig version (.exe-fil)