Löschen von Sonderzeichen / unerwünschten Zeichen in Excel

  • Teile Das
Michael Brown

In diesem Artikel erfahren Sie, wie Sie bestimmte Zeichen aus einer Textzeichenfolge löschen und unerwünschte Zeichen aus mehreren Zellen auf einmal entfernen können.

Wenn Sie Daten von einem anderen Ort nach Excel importieren, können eine ganze Reihe von Sonderzeichen in Ihre Arbeitsblätter gelangen. Noch frustrierender ist, dass einige Zeichen unsichtbar sind, so dass vor, nach oder innerhalb von Textstrings zusätzlicher Leerraum entsteht. Dieses Tutorial bietet Lösungen für all diese Probleme und erspart Ihnen die Mühe, die Daten Zelle für Zelle durchzugehen und unerwünschte Zeichen zu entfernenZeichen mit der Hand.

    Sonderzeichen aus Excel-Zelle entfernen

    Um ein bestimmtes Zeichen aus einer Zelle zu löschen, ersetzen Sie es durch eine leere Zeichenfolge, indem Sie die Funktion SUBSTITUTE in ihrer einfachsten Form verwenden:

    SUBSTITUTE( Zelle , char , "")

    Um zum Beispiel ein Fragezeichen aus A2 zu entfernen, lautet die Formel in B2:

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

    Um ein Zeichen zu entfernen, das auf Ihrer Tastatur nicht vorhanden ist, können Sie es aus der Originalzelle in die Formel kopieren/einfügen.

    So können Sie zum Beispiel ein umgekehrtes Fragezeichen loswerden:

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

    Aber wenn ein unerwünschtes Zeichen ist unsichtbar oder nicht korrekt kopiert wird, wie setzen Sie ihn in die Formel ein? Finden Sie einfach seine Codenummer mit Hilfe der Funktion CODE.

    In unserem Fall steht das unerwünschte Zeichen ("¿") in Zelle A2 an letzter Stelle. Daher verwenden wir eine Kombination aus den Funktionen CODE und RIGHT, um den eindeutigen Codewert 191 abzurufen:

    =CODE(RIGHT(A2))

    Sobald Sie den Code des Zeichens erhalten haben, geben Sie die entsprechende CHAR-Funktion in die obige allgemeine Formel ein. Für unseren Datensatz sieht die Formel wie folgt aus:

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

    Hinweis: Die Funktion SUBSTITUTE ist Groß- und Kleinschreibung Das bedeutet, dass Klein- und Großbuchstaben als unterschiedliche Zeichen behandelt werden. Bitte beachten Sie dies, wenn Ihr unerwünschtes Zeichen ein Buchstabe ist.

    Mehrere Zeichen aus einer Zeichenkette löschen

    In einem der vorangegangenen Artikel haben wir uns angeschaut, wie man bestimmte Zeichen aus Zeichenfolgen in Excel entfernen kann, indem man mehrere SUBSTITUTE-Funktionen ineinander schachtelt. Mit dem gleichen Ansatz lassen sich zwei oder mehr unerwünschte Zeichen auf einmal entfernen:

    ERSATZ(ERSATZ(ERSATZ(ERSATZ( Zelle , char1 , ""), char2 , ""), char3 , "")

    Um zum Beispiel normale Ausrufe- und Fragezeichen sowie die invertierten aus einer Textzeichenfolge in A2 zu entfernen, verwenden Sie diese Formel:

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

    Das gleiche kann mit Hilfe der Funktion CHAR gemacht werden, wobei 161 der Zeichencode für "¡" und 191 der Zeichencode für "¿" ist:

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

    Verschachtelte SUBSTITUTE-Funktionen funktionieren gut für eine angemessene Anzahl von Zeichen, aber wenn Sie Dutzende von Zeichen entfernen müssen, wird die Formel zu lang und schwer zu verwalten. Das nächste Beispiel zeigt eine kompaktere und elegantere Lösung.

    Alle unerwünschten Zeichen auf einmal entfernen

    Die Lösung funktioniert nur in Excel für Microsoft 365

    Wie Sie wahrscheinlich wissen, verfügt Excel 365 über eine spezielle Funktion, die es Ihnen ermöglicht, eigene Funktionen zu erstellen, einschließlich solcher, die rekursiv berechnen. Diese neue Funktion heißt LAMBDA, und Sie finden alle Einzelheiten dazu in dem oben verlinkten Tutorial. Im Folgenden werde ich das Konzept anhand einiger praktischer Beispiele erläutern.

    Eine benutzerdefinierte LAMBDA-Funktion zur unerwünschte Zeichen entfernen ist wie folgt:

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

    Um diese Funktion in Ihren Arbeitsblättern verwenden zu können, müssen Sie sie zunächst benennen. Drücken Sie dazu Strg + F3, um das Fenster Name Manager und definieren dann eine Neuer Name auf diese Weise:

    1. In der Name geben Sie den Namen der Funktion ein: RemoveChars .
    2. Setzen Sie den Bereich auf Arbeitsbuch .
    3. In der Bezieht sich auf fügen Sie die obige Formel ein.
    4. Optional können Sie die Beschreibung der Parameter in das Feld Kommentare Die Parameter werden angezeigt, wenn Sie eine Formel in eine Zelle eingeben.
    5. Klicken Sie auf OK um Ihre neue Funktion zu speichern.

    Eine ausführliche Anleitung finden Sie unter Wie benennt man eine benutzerdefinierte LAMBDA-Funktion?

    Sobald die Funktion einen Namen hat, können Sie auf sie wie auf jede native Formel verweisen.

    Aus der Sicht des Benutzers ist die Syntax unserer benutzerdefinierten Funktion so einfach wie folgt:

    RemoveChars(zeichenkette, zeichen)

    Wo:

    • Zeichenfolge - ist die ursprüngliche Zeichenfolge oder ein Verweis auf die Zelle/den Bereich, der die Zeichenfolge(n) enthält.
    • Zeichen - zu löschende Zeichen, die durch eine Textzeichenfolge oder einen Zellverweis dargestellt werden können.

    Der Einfachheit halber geben wir unerwünschte Zeichen in eine Zelle ein, z. B. D2. Um diese Zeichen aus A2 zu entfernen, lautet die Formel:

    =RemoveChars(A2, $D$2)

    Damit die Formel richtig funktioniert, sollten Sie folgende Dinge beachten:

    • In D2 werden die Zeichen ohne Leerzeichen aufgelistet, es sei denn, Sie möchten auch die Leerzeichen entfernen.
    • Die Adresse der Zelle, die die Sonderzeichen enthält, wird mit dem $-Zeichen ($D$2) gesperrt, um zu verhindern, dass sich der Verweis beim Kopieren der Formel auf die darunter liegenden Zellen ändert.

    Und dann ziehen wir die Formel einfach nach unten und lassen alle in D2 aufgeführten Zeichen aus den Zellen A2 bis A6 löschen:

    Um mehrere Zellen mit einer einzigen Formel zu bereinigen, geben Sie für das 1. Argument den Bereich A2:A6 an:

    =EntferneZeichen(A2:A6, D2)

    Da die Formel nur in die oberste Zelle eingegeben wird, müssen Sie sich nicht um die Fixierung der Zellkoordinaten kümmern - ein relativer Verweis (D2) funktioniert in diesem Fall problemlos. Und dank der Unterstützung für dynamische Arrays wird die Formel automatisch in alle referenzierten Zellen übertragen:

    Entfernen eines vordefinierten Zeichensatzes

    Um einen vordefinierten Satz von Zeichen aus mehreren Zellen zu löschen, können Sie einen weiteren LAMBDA erstellen, der die Hauptfunktion RemoveChars und geben Sie die unerwünschten Zeichen im 2. Parameter an, zum Beispiel:

    Zum Löschen Sonderzeichen haben wir eine benutzerdefinierte Funktion namens RemoveSpecialChars :

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

    An Nummern entfernen aus Textstrings zu erstellen, haben wir eine weitere Funktion namens RemoveNumbers :

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

    Die beiden oben genannten Funktionen sind sehr einfach zu verwenden, da sie nur ein Argument benötigen - die ursprüngliche Zeichenkette.

    Beseitigung Sonderzeichen von A2 lautet die Formel:

    =RemoveSpecialChars(A2)

    Um nur zu löschen numerische Zeichen:

    =EntferneNummern(A2)

    Wie diese Funktion funktioniert:

    Im Wesentlichen ist die RemoveChars Funktion durchläuft die Liste der Zeichen und entfernt ein Zeichen nach dem anderen. Vor jedem rekursiven Aufruf prüft die IF-Funktion die verbleibenden Zeichen. Wenn die Zeichen Zeichenfolge nicht leer ist (Zeichen""), ruft sich die Funktion selbst auf. Sobald das letzte Zeichen verarbeitet wurde, gibt die Formel String in seiner jetzigen Form und verlässt ihn.

    Eine detaillierte Aufschlüsselung der Formel finden Sie unter Rekursives LAMBDA zum Entfernen unerwünschter Zeichen.

    Sonderzeichen mit VBA entfernen

    Die Funktionen funktionieren in allen Versionen von Excel

    Wenn die LAMBDA-Funktion in Ihrem Excel nicht verfügbar ist, können Sie eine ähnliche Funktion mit VBA erstellen. Eine benutzerdefinierte Funktion (UDF) kann auf zwei Arten geschrieben werden.

    Benutzerdefinierte Funktion zum Löschen von Sonderzeichen rekursiv :

    Dieser Code emuliert die Logik der oben beschriebenen LAMBDA-Funktion.

    Function RemoveUnwantedChars(str As String , chars As String ) If ( "" chars) Then str = Replace(str, Left(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End Function

    Benutzerdefinierte Funktion zum Entfernen von Sonderzeichen nicht rekursiv :

    Hier werden die unerwünschten Zeichen von 1 bis Len(chars) durchlaufen und die in der ursprünglichen Zeichenkette gefundenen Zeichen durch nichts ersetzt. Die MID-Funktion zieht die unerwünschten Zeichen einzeln heraus und übergibt sie an die Replace-Funktion.

    Function RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveUnwantedChars = str End Function

    Fügen Sie einen der oben genannten Codes in Ihre Arbeitsmappe ein, wie unter Einfügen von VBA-Code in Excel beschrieben, und schon ist Ihre benutzerdefinierte Funktion einsatzbereit.

    Um unsere neue benutzerdefinierte Funktion nicht mit der von Lambda definierten Funktion zu verwechseln, haben wir sie anders benannt:

    RemoveUnwantedChars(string, chars)

    Angenommen, die ursprüngliche Zeichenfolge befindet sich in A2 und die unerwünschten Zeichen in D2, dann können wir sie mit dieser Formel entfernen:

    = RemoveUnwantedChars(A2, $D$2)

    Benutzerdefinierte Funktion mit hartcodierten Zeichen

    Wenn Sie sich nicht um die Eingabe von Sonderzeichen für jede Formel kümmern wollen, können Sie diese direkt im Code angeben:

    Function RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Long chars = "?¿!¡*%#$(){}[]^&/\~+-" For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveSpecialChars = str End Function

    Bitte beachten Sie, dass der obige Code nur zu Demonstrationszwecken dient. Für den praktischen Gebrauch sollten Sie alle zu löschenden Zeichen in die folgende Zeile einfügen:

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

    Diese benutzerdefinierte Funktion heißt RemoveSpecialChars und benötigt nur ein Argument - die ursprüngliche Zeichenkette:

    RemoveSpecialChars(string)

    Um Sonderzeichen aus unserem Datensatz zu entfernen, lautet die Formel:

    =RemoveSpecialChars(A2)

    Nicht druckbare Zeichen in Excel entfernen

    Microsoft Excel verfügt über eine spezielle Funktion zum Löschen von nicht druckbaren Zeichen - die CLEAN-Funktion. Technisch gesehen entfernt sie die ersten 32 Zeichen des 7-Bit-ASCII-Satzes (Codes 0 bis 31).

    Zum Beispiel, um zu löschen nicht druckbare Zeichen von A2 aus zu berechnen, ist die folgende Formel zu verwenden:

    =CLEAN(A2)

    Dadurch werden nicht druckbare Zeichen entfernt, aber Leerzeichen vor/nach dem Text und zwischen Wörtern bleiben erhalten.

    Um loszuwerden zusätzliche Räume die Formel CLEAN in die Funktion TRIM einbinden:

    =TRIM(CLEAN(A2))

    Nun werden alle führenden und nachfolgenden Leerzeichen entfernt, während die Zwischenräume auf ein einziges Leerzeichen reduziert werden:

    Wenn Sie absolut löschen möchten alle Räume innerhalb einer Zeichenkette, dann ersetzen Sie zusätzlich das Leerzeichen (Codenummer 32) durch eine leere Zeichenkette:

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

    Wenn in Ihrem Arbeitsblatt noch Leerzeichen oder andere unsichtbare Zeichen vorhanden sind, bedeutet dies, dass diese Zeichen unterschiedliche Werte im Unicode-Zeichensatz haben.

    Zum Beispiel kann der Zeichencode einer umgebungsfreies Leerzeichen ( ) ist 160, und Sie können es mit dieser Formel bereinigen:

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

    So löschen Sie eine bestimmtes nichtdruckendes Zeichen Die ausführliche Anleitung und die Formelbeispiele finden Sie hier: So entfernen Sie ein bestimmtes nicht druckbares Zeichen.

    Löschen von Sonderzeichen mit Ultimate Suite

    Unterstützt Excel für Microsoft 365, Excel 2019 - 2010

    In diesem letzten Beispiel möchte ich Ihnen zeigen, wie Sie Sonderzeichen in Excel am einfachsten entfernen können, wenn Sie die Ultimate Suite installiert haben:

    1. Auf der Ablebits Daten auf der Registerkarte Text Gruppe, klicken Sie auf entfernen > Zeichen entfernen .

  • Wählen Sie im Fenster des Add-Ins den Quellbereich, wählen Sie Zeichensätze entfernen und wählen Sie die gewünschte Option aus der Dropdown-Liste ( Symbole & Interpunktionszeichen in diesem Beispiel).
  • Drücken Sie die entfernen Taste.
  • Im Handumdrehen werden Sie ein perfektes Ergebnis erhalten:

    Sollte etwas schief gehen, machen Sie sich keine Sorgen - eine Sicherungskopie Ihres Arbeitsblatts wird automatisch erstellt, wenn die Sichern Sie dieses Arbeitsblatt ist standardmäßig aktiviert.

    Wenn Sie neugierig sind, unser Entfernen-Tool auszuprobieren, finden Sie unten einen Link zur Testversion. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche auf unserem Blog begrüßen zu dürfen!

    Verfügbare Downloads

    Sonderzeichen löschen - Beispiele (.xlsm-Datei)

    Ultimate Suite - Testversion (.exe-Datei)

    Michael Brown ist ein begeisterter Technologie-Enthusiast mit einer Leidenschaft für die Vereinfachung komplexer Prozesse mithilfe von Softwaretools. Mit mehr als einem Jahrzehnt Erfahrung in der Technologiebranche hat er seine Fähigkeiten in Microsoft Excel und Outlook sowie Google Sheets und Docs verfeinert. Michaels Blog widmet sich dem Teilen seines Wissens und seiner Expertise mit anderen und bietet leicht verständliche Tipps und Tutorials zur Verbesserung von Produktivität und Effizienz. Egal, ob Sie ein erfahrener Profi oder ein Anfänger sind, Michaels Blog bietet wertvolle Einblicke und praktische Ratschläge, wie Sie diese wichtigen Softwaretools optimal nutzen können.