Innholdsfortegnelse
Det er tre måter å finne og slette duplikater i en celle i Excel. Bare velg den som fungerer best for deg.
Når det gjelder å fjerne dupliserte verdier eller rader, tilbyr Microsoft Excel en rekke forskjellige alternativer. Men når det gjelder å fjerne identisk tekst i en gitt celle, gir Excel... ingenting. Ingen verktøy, ingen funksjoner, ingen formler, ingen ingenting. Vil det stoppe oss fra å nå målet vårt? Ikke i noe tilfelle. Hvis Excel ikke har funksjonen vi trenger, la oss skrive vår egen :)
Hvordan fjerne gjentatte ord i Excel-celle
Problem : Du har de samme ordene eller tekststrengene i en celle og ønsker å fjerne den andre og alle påfølgende repetisjoner.
Løsning : en tilpasset brukerdefinert funksjon eller VBA-makro.
Brukerdefinert funksjon for å fjerne duplikater i en celle
For å eliminere duplikattekst i en celle, kan du bruke følgende brukerdefinerte funksjon (UDF) , kalt RemoveDupeWords :
Funksjon RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim ordbok Som Objekt Dim x, del Set dictionary = CreateObject ( "Scripting.Dictionary") ordbok .CompareMode = vbTextCompare For Hver x In Split(tekst, skilletegn) del = Trim(x) Hvis del "" Og Ikke ordbok.Eksisterer(del) Deretter ordbok.Legg til del, Ingenting Slutt If Next If dictionary.Count > 0 Deretter RemoveDupeWords = Join(dictionary.keys,delimiter) Else RemoveDupeWords = "" End If Set dictionary = Ingenting SluttfunksjonHvordan sette inn funksjonens kode i arbeidsboken din
For å legge til koden ovenfor i Excel, er dette hva du må gjøre:
- Trykk Alt + F11 for å åpne Visual Basic Editor.
- I venstre rute, høyreklikk ThisWorkbook og velg Sett inn > Modul .
- Lim inn koden ovenfor i vinduet Kode .
For mer informasjon, se Hvordan sette inn VBA kode i Excel.
Fjern DupeWords-funksjonssyntaks
Vår nyopprettede funksjon for å fjerne duplikattekst i en celle har følgende syntaks:
RemoveDupeWords(tekst, [skilletegn])Hvor :
- Tekst (obligatorisk) - en streng eller celle du vil slette gjentatt tekst fra.
- Delimiter (valgfritt) - skilletegnet som den gjentatte teksten er atskilt med. Hvis det utelates, brukes et mellomrom for skilletegnet.
Funksjonen er ikke skiller mellom store og små bokstaver , noe som betyr at små og store bokstaver behandles som de samme tegnene.
Hvordan bruke RemoveDupeWords-funksjonen
Når funksjonens kode er lagt til arbeidsboken din, kan du bruke den i formlene dine på samme måte som du bruker Excels innebygde funksjoner.
Bare begynn å skrive funksjonens navn etter likhetstegnet, og det vil vises i formelen intellisense. Dobbeltklikk på funksjonen, så har du densatt inn i en celle. Definer argumentene, skriv inn den avsluttende parentesen, trykk Enter, og formelen din er fullført.
For eksempel, for å slette dupliserte ord atskilt med komma og mellomrom fra A2, skriv inn formelen nedenfor i B2, og dra den ned gjennom så mange celler som nødvendig:
=RemoveDupeWords(A2, ", ")
Som et resultat vil du ha en liste over unike ord eller understrenger atskilt med en komma og mellomrom :
Hvis du heller vil ha en kommadelt liste, bruk bare komma for skilletegnet :
=RemoveDupeWords(A2, ",")
Hvis kildedataene dine er atskilt med et mellomrom , skal det andre argumentet være " " eller utelatt:
=RemoveDupeWords(A2)
Som alle andre Excel-funksjoner, beregner vår UDF automatisk når kildedataene endres, slik at resultatene alltid vil være oppdatert.
VBA-makro for å slette duplikattekst fra flere celler samtidig
Hvis du ønsker å fjerne gjentatt tekst fra flere celler på én gang, kan du kalle opp RemoveDupeWords -funksjonen fra m i en makro. I dette tilfellet er skilletegnet hardkodet, og du må oppdatere makroens kode hver gang skilletegnet endres. Alternativt kan du skrive noen kodevarianter for de vanligste skilletegnene, for eksempel et mellomrom, komma eller komma og mellomrom, og gi makroene meningsfulle navn, f.eks. RemoveDupesDelimSpace .
Makroens kode er som følger:
Public Sub RemoveDupeWords2() Dim celle som område for hver celle i Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubI koden ovenfor er skilletegnet et komma og plass . For å bruke et annet skilletegn, erstatt ", " med et annet tegn i denne kodelinjen:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Merk. For at makroen skal fungere, må dens kode og RemoveDupeWords-funksjonens kode plasseres på samme modul.
Hvordan bruke makroen
Sett inn makroens kode i din egen arbeidsbok eller åpne prøvearbeidsboken vår med koden, og utfør deretter følgende trinn for å kjøre makroen.
- Velg et celleområde du vil fjerne gjentatt tekst fra.
- Trykk Alt + F8 for å åpne dialogboksen Makro .
- I listen over makroer, velg RemoveDupeWords2 .
- Klikk Kjør .
For mer informasjon, se Hvordan kjør en makro i Excel.
Merk. Fordi en makrohandling ikke kan angres , anbefaler vi sterkt at du lagrer arbeidsboken rett før du bruker makroen. På denne måten, hvis noe går galt, kan du ganske enkelt lukke og åpne arbeidsboken på nytt, og du kommer tilbake til akkurat der du var. Eller du kan bare lage en kopi av regnearket(e) som kan være påvirket av makroen.
Hvordan fjerne dupliserte tegn i en celle
Problem : Du har flere forekomster av samme tegn i en celle, mens hvercelle skal bare inneholde en enkelt forekomst av et gitt tegn.
Løsning : en egendefinert brukerdefinert funksjon eller VBA-makro.
Brukerdefinert funksjon for å slette gjentatte tegn
For å fjerne dupliserte tegn i en celle med kun de første forekomstene, kan du bruke følgende brukerdefinerte funksjon, kalt RemoveDupeChars :
Funksjon 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 Til Len(tekst) char = Mid(tekst, i, 1 ) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = resultat & char End If Next RemoveDupeChars = resultat Set ordbok = Ingenting Slutt FunksjonFor å sette inn funksjonens kode i arbeidsboken din, er trinnene nøyaktig de samme som i forrige eksempel.
Fjern DupeChars funksjonssyntaks
Syntaksen til denne egendefinerte funksjonen er så enkel som den muligens kan være - bare ett argument kreves:
RemoveDupeChars(tekst)Hvor tekst er en streng eller celle du ønsker fra for å fjerne dupliserte tegn.
Funksjonen er skiftende bokstaver og behandler små og store bokstaver som forskjellige tegn.
Hvordan bruke RemoveDupeChars-funksjonen
Alt vi sa om bruken av RemoveDupeWords er sant for RemoveDupeChars . Altså uten å gåfor mye i teori, la oss gå rett til et eksempel.
For å slette dupliserte tegn fra kolonne A som begynner i A2, skriv inn denne formelen i B2 og kopier den ned:
=RemoveDupeChars(A2)
Som du kan se på bildet nedenfor, håndterer funksjonen forskjellige tegntyper, inkludert bokstaver, sifre og spesialsymboler:
Tips. Hvis tegnene dine er atskilt fra hverandre med skilletegn som mellomrom, komma eller bindestrek, bruk RemoveDupeWords -funksjonen som vist i forrige eksempel.
VBA-makro for å fjerne de samme tegnene fra en celle
Som RemoveDupeWords , kan RemoveDupeChars -funksjonen også kalles fra en makro:
Public Sub RemoveDupeChars2() Dim celle som område for hver celle i Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End SubFordi denne UDF ikke bruker noen skilletegn, trenger du ikke gjøre noen justeringer i koden.
Merk. For at makroen skal fungere, må dens kode og koden til RemoveDupeChars UDF plasseres på samme modul i VBA-editoren.
Hvordan bruke makroen
Forutsatt at du allerede har satt inn makroens kode i arbeidsboken eller åpnet eksempelarbeidsboken vår som inneholder koden, start makroen på denne måten.
- Velg et celleområde du ønsker å fjerne gjentatte tegn fra.
- Trykk Alt + F8 for å åpne dialogboksen Makro boksen.
- I listen over makroer velger du RemoveDupeChars2 .
- Klikk Kjør .
Fjern dupliserte delstrenger med Ultimate Suite
I begynnelsen av denne opplæringen ble det nevnt at Microsoft Excel ikke har en innebygd funksjon for å fjerne duplikater i en celle. Men vår Ultimate Suite gjør det!
Du finner den i rullegardinmenyen Duplicate Remover på Ablebits Data -fanen, i Dedupe gruppe. Hvis alternativet Fjern dupliserte delstrenger ikke vises i Excel, må du kontrollere at du har den nyeste versjonen av Ultimate Suite installert (en gratis prøveversjon kan lastes ned her).
For å fjerne gjentatte ord eller tekst fra flere celler på 5 sekunder (et sekund per trinn :), er dette hva du må gjøre:
- Velg kildedata og start Fjern dupliserte delstrenger -verktøyet.
- Spesifiser skilletegn .
- Definer om følgende skilletegn skal behandles som én (standard).
- Velg om du vil utføre søk for små og store bokstaver eller uavhengig av store og små bokstaver .
- Klikk Fjern .
Ferdig! Ingen fikling med VBA eller formler, bare raske og nøyaktige resultater.
For å lære mer om dette fantastiske tillegget, vennligst besøk hjemmesiden. Eller enda bedre, last ned en evalueringsversjon nedenfor og prøv den!
Slik fjerner du duplikattekst i en celle.Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!
Tilgjengelige nedlastinger
Eksempler for å fjerne duplikater i cellen (.xlsm-fil)
Ultimate Suite 14 -day fullt funksjonell versjon (.exe-fil)