Innehållsförteckning
Det finns tre sätt att hitta och ta bort dubbletter i en cell i Excel. Välj det som fungerar bäst för dig.
När det gäller att ta bort dubbla värden eller rader erbjuder Microsoft Excel en rad olika alternativ. Men när det gäller att ta bort identisk text i en given cell erbjuder Excel... ingenting. Inga verktyg, inga funktioner, inga formler, ingenting. Kommer det att hindra oss från att nå vårt mål? Inte alls. Om Excel inte har den funktion vi behöver, låt oss skriva en egen :)
Hur man tar bort upprepade ord i en Excel-cell
Problem : Du har samma ord eller textsträngar i en cell och vill ta bort den andra och alla efterföljande upprepningar.
Lösning : en egen användardefinierad funktion eller ett VBA-makro.
Användardefinierad funktion för att ta bort dubbletter i en cell
För att eliminera dubbel text i en cell kan du använda följande användardefinierade funktion (UDF), som heter RemoveDupeWords :
Funktion 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 FunctionHur du infogar funktionens kod i arbetsboken
Så här gör du för att lägga till ovanstående kod i Excel:
- Tryck på Alt + F11 för att öppna Visual Basic Editor.
- I den vänstra rutan högerklickar du på Denna arbetsbok och välj Infoga > Modul .
- Klistra in ovanstående kod i Kod fönster.
För mer information, se Hur du infogar VBA-kod i Excel.
Syntax för funktionen RemoveDupeWords
Vår nyskapade funktion för att ta bort dubbel text i en cell har följande syntax:
RemoveDupeWords(text, [delimiter])Var:
- Text (obligatoriskt) - en sträng eller cell från vilken du vill ta bort upprepad text.
- Avgränsare (valfritt) - den avgränsare som den upprepade texten separeras av. Om den utelämnas används ett mellanslag som avgränsare.
Funktionen är inte skiftlägeskänslig vilket innebär att små och stora bokstäver behandlas som samma tecken.
Hur man använder funktionen RemoveDupeWords
När funktionskoden har lagts till i arbetsboken kan du använda den i dina formler på samma sätt som du använder Excels inbyggda funktioner.
Börja bara skriva funktionens namn efter likhetstecknet, så visas den i formelns intelligens. Dubbelklicka på funktionen så infogas den i en cell. Definiera argumenten, skriv den avslutande parentesen, tryck på Enter och formeln är klar.
Om du till exempel vill ta bort dubbla ord som är separerade med ett kommatecken och ett mellanslag från A2 skriver du in formeln nedan i B2 och drar den sedan nedåt genom så många celler som behövs:
=RemoveDupeWords(A2, ", ")
Resultatet blir en lista med unika ord eller delsträngar separerade med en kommatecken och mellanslag :
Om du hellre vill ha en kommaseparerad lista använder du endast ett kommatecken för avgränsaren:
=RemoveDupeWords(A2, ",")
Om dina källdata är separerade med ett utrymme Det andra argumentet ska vara " " eller utelämnas:
=RemoveDupeWords(A2)
Precis som alla andra Excel-funktioner räknar vår UDF om automatiskt när källdata ändras, så att dina resultat alltid är uppdaterade.
VBA-makro för att ta bort duplicerad text från flera celler på en gång
Om du vill ta bort upprepad text från flera celler i ett svep kan du anropa RemoveDupeWords i ett makro. I det här fallet är avgränsaren hårdkodad och du måste uppdatera makrokoden varje gång avgränsaren ändras. Alternativt kan du skriva några kodvarianter för de vanligaste avgränsarna, t.ex. mellanslag, kommatecken eller kommatecken och mellanslag, och ge dina makron meningsfulla namn, t.ex. RemoveDupesDelimSpace .
Makrot är kodat enligt följande:
Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End SubI koden ovan är avgränsaren en kommatecken och mellanslag Om du vill använda en annan avgränsare ersätter du ", " med ett annat tecken i den här kodraden:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Observera: För att makrot ska fungera måste dess kod och koden för RemoveDupeWords-funktionen placeras i samma modul.
Hur man använder makroet
Infoga makrokoden i din egen arbetsbok eller öppna vår exempelarbetsbok med koden och utför sedan följande steg för att köra makrot.
- Välj ett antal celler som du vill ta bort upprepad text från.
- Tryck på Alt + F8 för att öppna Makro dialogrutan.
- I listan över makron väljer du RemoveDupeWords2 .
- Klicka på Kör .
Mer information finns i avsnittet Hur man kör ett makro i Excel.
Observera: Eftersom ett makros åtgärd kan inte göras ogjort rekommenderar vi starkt att du sparar arbetsboken innan du använder makrot. Om något går fel kan du på så sätt stänga arbetsboken och öppna den igen, så att du är tillbaka där du var. Du kan också göra en kopia av de arbetsblad som kan påverkas av makrot.
Hur man tar bort dubbla tecken i en cell
Problem : Du har flera förekomster av samma tecken i en cell, medan varje cell endast ska innehålla en enda förekomst av ett visst tecken.
Lösning : en egen användardefinierad funktion eller ett VBA-makro.
Användardefinierad funktion för att radera upprepade tecken
Om du vill ta bort duplicerade tecken i en cell och bara behålla de första förekomsterna kan du använda följande användardefinierade funktion, som heter RemoveDupeChars :
Funktion 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 FunctionFör att infoga funktionens kod i arbetsboken är stegen exakt desamma som i det föregående exemplet.
Syntax för funktionen RemoveDupeChars
Syntaxen för den här anpassade funktionen är så enkel som möjligt - endast ett argument krävs:
RemoveDupeChars(text)Var text är en sträng eller cell som du vill ta bort dubbla tecken från.
Funktionen är Skiftlägeskänslig och behandlar små och stora bokstäver som olika tecken.
Hur man använder funktionen RemoveDupeChars
Allt vi sagt om användningen av RemoveDupeWords gäller för RemoveDupeChars Så utan att gå in på för mycket teori, låt oss gå direkt till ett exempel.
Om du vill ta bort dubbla tecken från kolumn A med början i A2 skriver du in den här formeln i B2 och kopierar den nedåt:
=RemoveDupeChars(A2)
Som du kan se i bilden nedan kan funktionen hantera olika teckentyper, inklusive bokstäver, siffror och specialsymboler:
Tips: Om dina karaktärer är åtskilda från varandra genom något avgränsare såsom ett mellanslag, ett kommatecken eller ett bindestreck, använd sedan RemoveDupeWords funktion som i det föregående exemplet.
VBA-makro för att ta bort samma tecken från en cell
Som RemoveDupeWords , den RemoveDupeChars funktionen kan också anropas från ett makro:
Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End SubEftersom denna UDF inte använder någon avgränsare behöver du inte göra några justeringar i koden.
Observera: För att makrot ska fungera måste dess kod och koden för RemoveDupeChars UDF placeras i samma modul i VBA-redigeraren.
Hur man använder makroet
Om du redan har infogat makrokoden i din arbetsbok eller öppnat vår exempelarbetsbok som innehåller koden, startar du makrot på följande sätt.
- Välj ett område av celler som du vill ta bort upprepade tecken från.
- Tryck på Alt + F8 för att öppna Makro dialogrutan.
- I listan över makron väljer du RemoveDupeChars2 .
- Klicka på Kör .
Ta bort dubbla delsträngar med Ultimate Suite
I början av den här handledningen nämndes det att Microsoft Excel inte har någon inbyggd funktion för att ta bort dubbletter i en cell. Men vår Ultimate Suite har det!
Du hittar den i Duplicate Remover på rullgardinsmenyn i Uppgifter om Ablebits på fliken Dedupe grupp. Om den Ta bort dubbla understrängar inte visas i Excel, kontrollera att du har den senaste versionen av Ultimate Suite installerad (en gratis provversion kan laddas ner här).
Om du vill ta bort upprepade ord eller text från flera celler på 5 sekunder (en sekund per steg :), gör du så här:
- Välj dina källdata och starta Ta bort dubbla understrängar verktyg.
- Ange den avgränsare .
- Definiera om man ska behandla Avgränsare i följd. som ett (standard).
- Välj om du vill utföra Skiftlägeskänslig eller . Skiftlägeskänslig sökning.
- Klicka på Ta bort .
Klart! Inget krångel med VBA eller formler, bara snabba och exakta resultat.
Om du vill veta mer om det här fantastiska tillägget kan du besöka hemsidan. Eller ännu bättre, ladda ner en utvärderingsversion nedan och prova det!
Så här tar du bort dubbel text i en cell. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!
Tillgängliga nedladdningar
Exempel för att ta bort dubbletter i en cell (.xlsm-fil)
Ultimate Suite 14-dagars fullt fungerande version (.exe-fil)