Inhoudsopgave
Er zijn drie manieren om duplicaten in een cel in Excel te vinden en te verwijderen. Kies de manier die voor u het beste werkt.
Als het gaat om het verwijderen van dubbele waarden of rijen, biedt Microsoft Excel een reeks verschillende opties. Maar als het gaat om het verwijderen van identieke tekst binnen een bepaalde cel, biedt Excel... niets. Geen hulpmiddelen, geen functies, geen formules, niets. Houdt dit ons tegen om ons doel te bereiken? In geen geval. Als Excel de functie die we nodig hebben niet heeft, laten we dan onze eigen functie gaan schrijven :)
Hoe herhaalde woorden in Excel-cel te verwijderen
Probleem U hebt dezelfde woorden of tekstreeksen in een cel en wilt de tweede en alle volgende herhalingen verwijderen.
Oplossing : een aangepaste door de gebruiker gedefinieerde functie of VBA-macro.
Gebruiker gedefinieerde functie om duplicaten in een cel te verwijderen
Om dubbele tekst in een cel te verwijderen, kunt u de volgende gebruikersgedefinieerde functie (UDF) gebruiken, genaamd RemoveDupeWords :
Functie 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 FunctionHoe de code van de functie in uw werkmap invoegen
Om de bovenstaande code aan uw Excel toe te voegen, moet u het volgende doen:
- Druk op Alt + F11 om de Visual Basic Editor te openen.
- Klik in het linkerdeelvenster met de rechtermuisknop op DitWerkboek en selecteer Plaats > Module .
- Plak de bovenstaande code in de Code raam.
Voor meer informatie, zie Hoe VBA-code in te voegen in Excel.
Syntaxis van de functie RemoveDupeWords
Onze nieuwe functie voor het verwijderen van dubbele tekst in een cel heeft de volgende syntaxis:
RemoveDupeWords(tekst, [scheidingsteken])Waar:
- Tekst (vereist) - een string of cel waaruit u herhaalde tekst wilt verwijderen.
- Scheidingsteken (facultatief) - het scheidingsteken waarmee de herhaalde tekst wordt gescheiden. Indien weggelaten, wordt een spatie gebruikt als scheidingsteken.
De functie is niet hoofdlettergevoelig wat betekent dat kleine letters en hoofdletters als dezelfde tekens worden behandeld.
Hoe de functie RemoveDupeWords te gebruiken
Zodra de code van de functie aan uw werkmap is toegevoegd, kunt u deze in uw formules gebruiken op dezelfde manier als u de ingebouwde functies van Excel gebruikt.
Begin gewoon de naam van de functie te typen na het gelijkheidsteken, en hij verschijnt in de formule-intelligentie. Dubbelklik op de functie, en je hebt hem ingevoegd in een cel. Definieer de argumenten, typ de afsluitende haakjes, druk op Enter , en je formule is klaar.
Om bijvoorbeeld dubbele woorden gescheiden door een komma en een spatie uit A2 te verwijderen, voert u de onderstaande formule in B2 in, en sleept u deze vervolgens naar beneden door zoveel cellen als nodig is:
=RemoveDupeWords(A2, ", ")
Als resultaat krijgt u een lijst van unieke woorden of substrings, gescheiden door een komma en spatie :
Als u liever een door komma's gescheiden lijst krijgt, gebruik dan alleen een komma voor het scheidingsteken:
=RemoveDupeWords(A2, ",")
Als uw brongegevens worden gescheiden door een ruimte moet het tweede argument " " zijn of worden weggelaten:
=RemoveDupeWords(A2)
Net als elke andere Excel-functie berekent onze UDF automatisch opnieuw wanneer de brongegevens veranderen, zodat uw resultaten altijd actueel zijn.
VBA-macro om dubbele tekst uit meerdere cellen tegelijk te verwijderen
Als u herhaalde tekst uit meerdere cellen in één keer wilt verwijderen, dan kunt u de RemoveDupeWords In dit geval is het scheidingsteken hard gecodeerd, en moet u de code van de macro bijwerken telkens als het scheidingsteken verandert. U kunt ook een paar codevarianten schrijven voor de meest voorkomende scheidingstekens, bijvoorbeeld een spatie, komma of komma en spatie, en uw macro's zinvolle namen geven, bijv. RemoveDupesDelimSpace .
De code van de macro is als volgt:
Openbare Sub VerwijderDupeWoorden2() Dim cel Als Bereik Voor Elke cel In Toepassing.Selectie cel.Waarde = VerwijderDupeWoorden(cel.Waarde, ", " ) Volgende Einde SubIn de bovenstaande code is het scheidingsteken een komma en spatie Om een ander scheidingsteken te gebruiken, vervangt u ", " door een of meer andere tekens in deze coderegel:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Opmerking. De macro werkt alleen als de code ervan en die van de functie RemoveDupeWords in dezelfde module staan.
Hoe de macro te gebruiken
Plaats de code van de macro in uw eigen werkmap of open onze voorbeeldwerkmap met de code, en voer vervolgens de volgende stappen uit om de macro uit te voeren.
- Selecteer een bereik van cellen waaruit u herhaalde tekst wilt verwijderen.
- Druk op Alt + F8 om de Macro dialoogvenster.
- Selecteer in de lijst van macro's RemoveDupeWords2 .
- Klik op Ren .
Voor meer details, zie Hoe voer je een macro uit in Excel.
Opmerking. Omdat de actie van een macro kan niet ongedaan worden gemaakt Wij raden u sterk aan uw werkmap op te slaan vlak voordat u de macro gebruikt. Als er dan iets misgaat, kunt u de werkmap gewoon sluiten en opnieuw openen, en bent u weer terug bij af. U kunt ook gewoon een kopie maken van het werkblad of de werkbladen waarop de macro betrekking heeft.
Hoe dubbele tekens in een cel verwijderen
Probleem U hebt meerdere keren hetzelfde teken in een cel, terwijl elke cel slechts één keer een bepaald teken mag bevatten.
Oplossing : een aangepaste door de gebruiker gedefinieerde functie of VBA-macro.
Gebruiker gedefinieerde functie om herhaalde tekens te verwijderen
Om dubbele tekens binnen een cel te verwijderen, waarbij alleen de eerste voorkomt, kunt u de volgende door de gebruiker gedefinieerde functie gebruiken, genaamd RemoveDupeChars :
Functie 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 FunctionOm de code van de functie in uw werkmap in te voegen, zijn de stappen precies dezelfde als in het vorige voorbeeld.
Syntaxis van de functie RemoveDupeChars
De syntaxis van deze aangepaste functie is zo eenvoudig mogelijk - er is slechts één argument nodig:
RemoveDupeChars(tekst)Waar tekst is een string of cel waaruit u dubbele tekens wilt verwijderen.
De functie is hoofdlettergevoelig en behandelt kleine letters en hoofdletters als verschillende tekens.
Hoe de functie RemoveDupeChars te gebruiken
Alles wat we hebben gezegd over het gebruik van RemoveDupeWords geldt voor RemoveDupeChars Dus, zonder al te veel op de theorie in te gaan, laten we meteen een voorbeeld geven.
Om dubbele tekens uit kolom A vanaf A2 te verwijderen, voert u deze formule in B2 in en kopieert u hem naar beneden:
=RemoveDupeChars(A2)
Zoals u in de onderstaande afbeelding kunt zien, verwerkt de functie met succes verschillende soorten tekens, waaronder letters, cijfers en speciale symbolen:
Tip. Als je personages van elkaar gescheiden zijn door een aantal scheidingsteken zoals een spatie, komma of koppelteken, gebruik dan de RemoveDupeWords functie zoals in het vorige voorbeeld.
VBA-macro om dezelfde tekens uit een cel te verwijderen
Zoals RemoveDupeWords de RemoveDupeChars functie kan ook worden aangeroepen vanuit een macro:
Openbare Sub RemoveDupeChars2() Dim cel Als Bereik Voor Elke cel In Toepassing.Selectie cel.Waarde = RemoveDupeChars(cel.Waarde) Volgende Einde SubOmdat deze UDF geen scheidingstekens gebruikt, hoeft u in de code niets aan te passen.
Opmerking: De macro werkt alleen als de code ervan en de code van de UDF RemoveDupeChars in dezelfde module in de VBA-editor worden geplaatst.
Hoe de macro te gebruiken
Aangenomen dat u de code van de macro al in uw werkmap hebt ingevoegd of onze voorbeeldwerkmap met de code hebt geopend, start u de macro op deze manier.
- Selecteer een bereik van cellen waaruit u herhaalde tekens wilt verwijderen.
- Druk op Alt + F8 om de Macro dialoogvenster.
- Selecteer in de lijst van macro's RemoveDupeChars2 .
- Klik op Ren .
Dubbele substrings verwijderen met Ultimate Suite
Aan het begin van deze tutorial werd vermeld dat Microsoft Excel geen ingebouwde functie heeft voor het verwijderen van duplicaten binnen een cel. Maar onze Ultimate Suite heeft die wel!
U kunt het vinden in de Duplicaat verwijderaar uitklapmenu op de Ablebits gegevens tabblad, in de Dedupe groep. Als de Dubbele substrings verwijderen optie niet verschijnt in uw Excel, controleer dan of u de laatste versie van Ultimate Suite heeft geïnstalleerd (een gratis proefversie kunt u hier downloaden).
Om herhaalde woorden of tekst uit meerdere cellen te verwijderen in 5 seconden (een seconde per stap :), is dit wat je moet doen:
- Selecteer uw brongegevens en start de Dubbele substrings verwijderen gereedschap.
- Geef de scheidingsteken .
- Bepaal of je moet behandelen opeenvolgende scheidingstekens als één (standaard).
- Kies of u hoofdlettergevoelig of hoofdletterongevoelig zoeken.
- Klik op Verwijder .
Klaar! Geen gedoe met VBA of formules, alleen snelle en nauwkeurige resultaten.
Voor meer informatie over deze geweldige invoegtoepassing kunt u terecht op de homepage. Of nog beter, download hieronder een evaluatieversie en probeer het uit!
Zo verwijdert u dubbele tekst in een cel. Ik dank u voor het lezen en hoop u volgende week op onze blog te zien!
Beschikbare downloads
Voorbeelden om duplicaten in cel te verwijderen (.xlsm bestand)
Ultimate Suite 14 dagen volledig functionele versie (.exe bestand)