Hoe speciale / ongewenste tekens verwijderen in Excel

  • Deel Dit
Michael Brown

In dit artikel leert u hoe u specifieke tekens uit een tekststring kunt verwijderen en ongewenste tekens uit meerdere cellen tegelijk kunt verwijderen.

Wanneer u gegevens van elders naar Excel importeert, kunnen een heleboel speciale tekens naar uw werkbladen reizen. Nog frustrerender is dat sommige tekens onzichtbaar zijn, wat extra witruimte oplevert voor, na of binnen tekststrings. Deze handleiding biedt oplossingen voor al deze problemen, zodat u niet de moeite hoeft te nemen om de gegevens cel voor cel door te nemen en ongewenste tekens te verwijderen.karakters met de hand.

    Speciaal teken verwijderen uit Excel-cel

    Om een specifiek teken uit een cel te verwijderen, vervangt u het door een lege tekenreeks met behulp van de functie SUBSTITUTE in zijn eenvoudigste vorm:

    SUBSTITUTE( cel , char , "")

    Om bijvoorbeeld een vraagteken uit A2 te verwijderen, is de formule in B2:

    =SUBSTITUTE(A2, "?", "")

    Om een teken dat niet op uw toetsenbord staat te verwijderen, kunt u het vanuit de oorspronkelijke cel naar de formule kopiëren/plakken.

    Zo kun je bijvoorbeeld een omgekeerd vraagteken wegwerken:

    =SUBSTITUTE(A2, "¿", "")

    Maar als een ongewenst karakter onzichtbaar of niet correct kopieert, hoe zet u het dan in de formule? Eenvoudig, zoek zijn codenummer met behulp van de CODE-functie.

    In ons geval komt het ongewenste teken ("¿") als laatste in cel A2, dus gebruiken we een combinatie van de functies CODE en RECHTS om de unieke codewaarde ervan, 191, op te halen:

    =CODE(RIGHT(A2))

    Zodra je de code van het teken hebt, dien je de overeenkomstige CHAR-functie toe aan de algemene formule hierboven. Voor onze dataset gaat de formule als volgt:

    =SUBSTITUTE(A2, CHAR(191),"")

    Opmerking. De functie SUBSTITUTE is hoofdlettergevoelig Dat betekent dat het kleine letters en hoofdletters als verschillende karakters behandelt. Houd daar rekening mee als uw ongewenste karakter een letter is.

    Meerdere tekens uit string verwijderen

    In een van de vorige artikelen hebben we bekeken hoe u specifieke tekens uit tekenreeksen in Excel kunt verwijderen door verschillende SUBSTITUTE-functies in elkaar te nestelen. Dezelfde aanpak kan worden gebruikt om twee of meer ongewenste tekens in één keer te verwijderen:

    SUBSTITUUT( SUBSTITUUT( SUBSTITUUT( cel , char1 , ""), char2 , ""), char3 , "")

    Om bijvoorbeeld normale uitroeptekens, vraagtekens en omgekeerde tekens uit een tekststring in A2 te verwijderen, gebruikt u deze formule:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "").

    Hetzelfde kan worden gedaan met behulp van de CHAR-functie, waarbij 161 de tekencode is voor "¡" en 191 de tekencode voor "¿":

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")

    Geneste SUBSTITUTE-functies werken prima voor een redelijk aantal tekens, maar als u tientallen tekens moet verwijderen, wordt de formule te lang en moeilijk te beheren. Het volgende voorbeeld toont een compactere en elegantere oplossing.

    Alle ongewenste tekens in één keer verwijderen

    De oplossing werkt alleen in Excel voor Microsoft 365

    Zoals u waarschijnlijk weet, heeft Excel 365 een speciale functie waarmee u uw eigen functies kunt maken, inclusief functies die recursief rekenen. Deze nieuwe functie heet LAMBDA, en u kunt er alle details over vinden in de hierboven gelinkte tutorial. Hieronder zal ik het concept illustreren met een paar praktische voorbeelden.

    Een aangepaste LAMBDA-functie om ongewenste tekens verwijderen is als volgt:

    =LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))

    Om deze functie in je werkbladen te kunnen gebruiken, moet je hem eerst een naam geven. Druk hiervoor op Ctrl + F3 om het menu Naam Manager en definieer dan een Nieuwe naam op deze manier:

    1. In de Naam vak, de naam van de functie in: RemoveChars .
    2. Stel de reikwijdte in op Werkboek .
    3. In de Verwijst naar vak, plak de bovenstaande formule.
    4. Voer optioneel de beschrijving van de parameters in het Opmerkingen De parameters worden weergegeven wanneer u een formule in een cel typt.
    5. Klik op OK om uw nieuwe functie op te slaan.

    Voor de gedetailleerde instructies, zie Hoe een aangepaste LAMBDA-functie een naam geven.

    Als de functie eenmaal een naam heeft, kunt u ernaar verwijzen zoals naar elke inheemse formule.

    Voor de gebruiker is de syntaxis van onze aangepaste functie zo eenvoudig:

    RemoveChars(string, chars)

    Waar:

    • String - is de oorspronkelijke string, of een verwijzing naar de cel/het bereik dat de string(s) bevat.
    • Chars - Kan worden weergegeven als een tekststring of een celverwijzing.

    Voor het gemak voeren we ongewenste tekens in een cel in, bijvoorbeeld D2. Om die tekens uit A2 te verwijderen, is de formule:

    =RemoveChars(A2, $D$2)

    Opdat de formule correct zou werken, moet u op de volgende zaken letten:

    • In D2 worden de tekens zonder spaties weergegeven, tenzij u ook spaties wilt elimineren.
    • Het adres van de cel met de speciale tekens wordt vergrendeld met het $-teken ($D$2) om te voorkomen dat de referentie verandert bij het kopiëren van de formule naar de onderstaande cellen.

    En dan slepen we gewoon de formule naar beneden en laten we alle tekens die in D2 staan, verwijderen uit de cellen A2 tot en met A6:

    Om meerdere cellen met een enkele formule schoon te maken, geeft u het bereik A2:A6 op als 1e argument:

    =RemoveChars(A2:A6, D2)

    Omdat de formule alleen in de bovenste cel wordt ingevoerd, hoeft u zich geen zorgen te maken over het vergrendelen van de celcoördinaten - een relatieve verwijzing (D2) werkt in dit geval prima. En dankzij de ondersteuning voor dynamische matrices, loopt de formule automatisch door in alle cellen waarnaar wordt verwezen:

    Een vooraf gedefinieerde tekenset verwijderen

    Om een voorgedefinieerde reeks tekens uit meerdere cellen te verwijderen, kunt u een andere LAMBDA maken die de belangrijkste RemoveChars functie en geef de ongewenste tekens op in de 2e parameter. Bijvoorbeeld:

    Verwijderen speciale tekens hebben we een aangepaste functie gemaakt met de naam RemoveSpecialChars :

    =LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))

    Naar nummers verwijderen van tekststrings, hebben we nog een functie gemaakt met de naam RemoveNumbers :

    =LAMBDA(string, RemoveChars(string, "0123456789"))

    Beide bovenstaande functies zijn supergemakkelijk te gebruiken, omdat ze slechts één argument nodig hebben - de oorspronkelijke string.

    Om speciale tekens van A2, de formule is:

    =RemoveSpecialChars(A2)

    Alleen verwijderen numerieke tekens:

    =RemoveNumbers(A2)

    Hoe deze functie werkt:

    In wezen is de RemoveChars functie loopt door de lijst van chars en verwijdert één karakter per keer. Voor elke recursieve oproep controleert de IF-functie de resterende karakters. Als de chars string niet leeg is (chars""), roept de functie zichzelf aan. Zodra het laatste teken is verwerkt, retourneert de formule string het zijn huidige vorm en uitgang.

    Voor de gedetailleerde formule-uitleg, zie Recursieve LAMBDA om ongewenste tekens te verwijderen.

    Speciale tekens verwijderen met VBA

    De functies werken in alle versies van Excel

    Indien de LAMBDA-functie niet beschikbaar is in uw Excel, belet niets u om een soortgelijke functie te maken met VBA. Een door de gebruiker gedefinieerde functie (UDF) kan op twee manieren worden geschreven.

    Aangepaste functie om speciale tekens te verwijderen recursief :

    Deze code emuleert de logica van de hierboven besproken LAMBDA-functie.

    Functie RemoveUnwantedChars(str As String , chars As String ) Als ( "" chars) Dan str = Replace(str, Left(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Anders RemoveUnwantedChars = str End If End Function

    Aangepaste functie om speciale tekens te verwijderen niet-recursief :

    Hier lopen we door ongewenste tekens van 1 tot Len(chars) en vervangen de tekens die we in de oorspronkelijke string vinden door niets. De functie MID haalt ongewenste tekens één voor één op en geeft ze door aan de functie Vervangen.

    Functie RemoveUnwantedChars(str Als String , chars Als String ) Voor index = 1 Tot Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Volgende RemoveUnwantedChars = str Einde Functie

    Voeg een van de bovenstaande codes in uw werkmap in, zoals uitgelegd in Hoe VBA-code in Excel in te voegen, en uw aangepaste functie is klaar voor gebruik.

    Om onze nieuwe door de gebruiker gedefinieerde functie niet te verwarren met de door Lambda gedefinieerde functie, hebben we hem een andere naam gegeven:

    RemoveUnwantedChars(string, chars)

    Aangenomen dat de oorspronkelijke string in A2 staat en de ongewenste tekens in D2, kunnen we ze wegwerken met deze formule:

    = RemoveUnwantedChars(A2, $D$2)

    Aangepaste functie met hardgecodeerde tekens

    Als u geen moeite wilt doen om voor elke formule speciale tekens in te voeren, kunt u ze rechtstreeks in de code opgeven:

    Functie RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Long chars = "?¿!¡*%#$(){}[]^&/\~+-" Voor index = 1 Tot Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Volgende RemoveSpecialChars = str Einde Functie

    Houd er rekening mee dat de bovenstaande code voor demonstratiedoeleinden is. Voor praktisch gebruik moet u alle tekens die u wilt verwijderen opnemen in de volgende regel:

    chars = "?¿!¡*%#$(){}[]^&/\~+-"

    Deze aangepaste functie heet RemoveSpecialChars en heeft slechts één argument nodig - de oorspronkelijke string:

    RemoveSpecialChars(string)

    Om speciale tekens uit onze dataset te verwijderen, is de formule:

    =RemoveSpecialChars(A2)

    Niet-afdrukbare tekens verwijderen in Excel

    Microsoft Excel heeft een speciale functie om niet-afdrukbare tekens te verwijderen - de functie CLEAN. Technisch gezien worden hiermee de eerste 32 tekens in de 7-bits ASCII-set (codes 0 tot en met 31) verwijderd.

    Om bijvoorbeeld te verwijderen niet-afdrukbare tekens van A2, hier is de te gebruiken formule:

    =CLEAN(A2)

    Hierdoor worden niet-afdrukbare tekens verwijderd, maar er blijven spaties voor/na tekst en tussen woorden.

    Om zich te ontdoen van extra ruimtes de CLEAN-formule in de TRIM-functie:

    =TRIM(CLEAN(A2))

    Nu worden alle voor- en achterspaties verwijderd, terwijl de spaties ertussen worden teruggebracht tot één spatie:

    Als u absoluut wilt verwijderen alle ruimtes binnen een tekenreeks, dan vervangt u bovendien het spatieteken (codenummer 32) door een lege tekenreeks:

    =TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))

    Staan er nog spaties of andere onzichtbare tekens in uw werkblad? Dat betekent dat die tekens andere waarden hebben in de Unicode-tekenset.

    Bijvoorbeeld, de karaktercode van een niet-brekende spatie ( ) is 160 en je kunt het zuiveren met deze formule:

    =SUBSTITUTE(A2, CHAR(160)," ")

    Om een specifiek niet-drukkend karakter De gedetailleerde instructies en formulevoorbeelden vindt u hier: Hoe verwijder ik een specifiek niet-afdrukbaar teken?

    Speciale tekens verwijderen met Ultimate Suite

    Ondersteunt Excel voor Microsoft 365, Excel 2019 - 2010

    In dit laatste voorbeeld laat ik u de eenvoudigste manier zien om speciale tekens in Excel te verwijderen. Met de Ultimate Suite geïnstalleerd, is dit wat u moet doen:

    1. Op de Ablebits gegevens tabblad, in de Tekst groep, klik Verwijder > Tekens verwijderen .

  • Kies in het deelvenster van de invoegtoepassing het bronbereik, selecteer Tekensets verwijderen en kies de gewenste optie uit de keuzelijst ( Symbolen & leestekens in dit voorbeeld).
  • Druk op de Verwijder knop.
  • Zo meteen krijg je een perfect resultaat:

    Als er iets fout gaat, maak je geen zorgen - een reservekopie van je werkblad wordt automatisch aangemaakt als de Een back-up van dit werkblad vakje is standaard geselecteerd.

    Benieuwd naar onze Remove tool? Een link naar de evaluatieversie staat hieronder. Bedankt voor het lezen en hopelijk tot volgende week op onze blog!

    Beschikbare downloads

    Speciale tekens verwijderen - voorbeelden (.xlsm-bestand)

    Ultimate Suite - proefversie (.exe bestand)

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.