Hvordan fjerne duplikater i en celle i Excel

  • Dele Denne
Michael Brown

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 Sluttfunksjon

    Hvordan sette inn funksjonens kode i arbeidsboken din

    For å legge til koden ovenfor i Excel, er dette hva du må gjøre:

    1. Trykk Alt + F11 for å åpne Visual Basic Editor.
    2. I venstre rute, høyreklikk ThisWorkbook og velg Sett inn > Modul .
    3. 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 Sub

    I 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.

    1. Velg et celleområde du vil fjerne gjentatt tekst fra.
    2. Trykk Alt + F8 for å åpne dialogboksen Makro .
    3. I listen over makroer, velg RemoveDupeWords2 .
    4. 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 Funksjon

    For å 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 Sub

    Fordi 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.

    1. Velg et celleområde du ønsker å fjerne gjentatte tegn fra.
    2. Trykk Alt + F8 for å åpne dialogboksen Makro boksen.
    3. I listen over makroer velger du RemoveDupeChars2 .
    4. 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 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:

    1. Velg kildedata og start Fjern dupliserte delstrenger -verktøyet.
    2. Spesifiser skilletegn .
    3. Definer om følgende skilletegn skal behandles som én (standard).
    4. Velg om du vil utføre søk for små og store bokstaver eller uavhengig av store og små bokstaver .
    5. 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)

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.