Inhaltsverzeichnis
In den letzten Artikeln haben wir uns verschiedene Möglichkeiten angesehen, wie man in Excel Zeichen aus Zeichenfolgen entfernen kann. Heute werden wir einen weiteren Anwendungsfall untersuchen - wie man alles vor oder nach einem bestimmten Zeichen löschen kann.
Löschen von Text vor, nach oder zwischen 2 Zeichen mit Find & Replace
Für Datenmanipulationen in mehreren Zellen ist Suchen und Ersetzen das richtige Werkzeug. Um einen Teil einer Zeichenkette vor oder nach einem bestimmten Zeichen zu entfernen, müssen Sie folgende Schritte ausführen:
- Markieren Sie alle Zellen, in denen Sie Text löschen möchten.
- Drücken Sie Strg + H, um das Fenster Suchen und Ersetzen Dialog.
- In der Was finden geben Sie eine der folgenden Kombinationen ein:
- Um Text zu eliminieren vor einem bestimmten Zeichen geben Sie das Zeichen mit vorangestelltem Sternchen (*char) ein.
- So entfernen Sie Text nach einem bestimmten Zeichen geben Sie das Zeichen gefolgt von einem Sternchen (char*) ein.
- So löschen Sie eine Teilzeichenkette zwischen zwei Zeichen geben Sie ein Sternchen ein, das von 2 Zeichen umgeben ist (char*char).
- Lassen Sie die Ersetzen Sie mit Kasten leer.
- Klicken Sie auf Ersetzen Sie alle .
Zum Beispiel, um zu entfernen alles nach einem Komma einschließlich des Kommas selbst, setzen Sie ein Komma und ein Sternchen (,*) in die Was finden und Sie werden das folgende Ergebnis erhalten:
So löschen Sie eine Teilzeichenkette vor einem Komma geben Sie ein Sternchen, ein Komma und ein Leerzeichen (*, ) in das Feld Was finden Box.
Bitte beachten Sie, dass wir nicht nur ein Komma ersetzen, sondern ein Komma und ein Leerzeichen Wenn Ihre Daten durch Kommas ohne Leerzeichen getrennt sind, verwenden Sie ein Sternchen gefolgt von einem Komma (*,).
So löschen Sie Text zwischen zwei Kommas verwenden Sie ein von Kommas umgebenes Sternchen (,*,).
Tipp: Wenn Sie die Namen und Telefonnummern lieber durch ein Komma getrennt haben möchten, geben Sie ein Komma (,) in das Feld Ersetzen durch Feld.
Einen Teil des Textes mit Flash Fill entfernen
In modernen Versionen von Excel (2013 und höher) gibt es eine weitere einfache Möglichkeit, Text zu löschen, der vor oder nach einem bestimmten Zeichen steht - die Funktion "Flash Fill". So funktioniert sie:
- Geben Sie in einer Zelle neben der ersten Zelle mit Ihren Daten das erwartete Ergebnis ein und drücken Sie die Eingabetaste.
- Beginnen Sie mit der Eingabe eines entsprechenden Wertes in die nächste Zelle. Sobald Excel das Muster in den von Ihnen eingegebenen Werten erkennt, wird eine Vorschau für die verbleibenden Zellen angezeigt, die demselben Muster folgen.
- Drücken Sie die Eingabetaste, um den Vorschlag zu akzeptieren.
Erledigt!
Text mit Formeln entfernen
In Microsoft Excel können viele Datenmanipulationen, die mit den integrierten Funktionen durchgeführt werden, auch mit einer Formel durchgeführt werden. Im Gegensatz zu den vorherigen Methoden nehmen Formeln keine Änderungen an den Originaldaten vor und bieten Ihnen mehr Kontrolle über die Ergebnisse.
Wie man alles nach einem bestimmten Zeichen entfernt
Um Text nach einem bestimmten Zeichen zu löschen, lautet die allgemeine Formel:
LINKS( Zelle , SEARCH(" char ", Zelle ) -1)Hier verwenden wir die Funktion SEARCH, um die Position des Zeichens zu ermitteln, und übergeben sie an die Funktion LEFT, damit diese die entsprechende Anzahl von Zeichen vom Anfang der Zeichenfolge extrahiert. Von der von SEARCH zurückgegebenen Zahl wird ein Zeichen abgezogen, um das Trennzeichen aus den Ergebnissen auszuschließen.
Um zum Beispiel einen Teil einer Zeichenkette nach einem Komma zu entfernen, geben Sie die folgende Formel in B2 ein und ziehen sie nach unten bis B7:
=LEFT(A2, SEARCH(",", A2) -1)
Wie man alles vor einem bestimmten Zeichen entfernt
Um einen Teil einer Zeichenkette vor einem bestimmten Zeichen zu löschen, lautet die allgemeine Formel:
RECHT( Zelle , LEN( Zelle ) - SEARCH(" char ", Zelle ))Auch hier berechnen wir die Position des Zielzeichens mit Hilfe von SEARCH, subtrahieren sie von der Gesamtlänge der Zeichenkette, die von LEN zurückgegeben wird, und übergeben die Differenz an die Funktion RIGHT, damit sie so viele Zeichen vom Ende der Zeichenkette abzieht.
Um zum Beispiel Text vor einem Komma zu entfernen, lautet die Formel:
=RIGHT(A2, LEN(A2) - SEARCH(",", A2))
In unserem Fall folgt auf das Komma ein Leerzeichen. Um führende Leerzeichen in den Ergebnissen zu vermeiden, umhüllen wir die Kernformel mit der TRIM-Funktion:
=TRIM(RIGHT(A2, LEN(A2) - SEARCH(",", A2)))
Anmerkungen:
- In beiden Beispielen wird davon ausgegangen, dass es nur eine Instanz des Trennzeichens in der ursprünglichen Zeichenkette. Bei mehrfachem Vorkommen wird der Text vor/nach der erste Instanz .
- Die Funktion SEARCH ist keine Unterscheidung zwischen Groß- und Kleinschreibung Wenn Ihr spezifisches Zeichen ein Buchstabe ist und Sie zwischen Groß- und Kleinschreibung unterscheiden möchten, dann verwenden Sie die Option Groß- und Kleinschreibung FIND-Funktion anstelle von SEARCH.
Löschen von Text nach dem N-ten Vorkommen eines Zeichens
Wenn eine Quellzeichenkette mehrere Instanzen des Trennzeichens enthält, kann es erforderlich sein, den Text nach einer bestimmten Instanz zu entfernen. Verwenden Sie dazu die folgende Formel:
LINKS( Zelle , FIND("#", SUBSTITUTE( Zelle , " char ", "#", n )) -1)Wo n ist das Vorkommen des Zeichens, nach dem der Text entfernt werden soll.
Die interne Logik dieser Formel erfordert die Verwendung eines Zeichens, das nirgendwo in den Quelldaten vorkommt, in unserem Fall ein Rautensymbol (#). Wenn dieses Zeichen in Ihrem Datensatz vorkommt, dann verwenden Sie etwas anderes anstelle von "#".
Um zum Beispiel alles nach dem 2. Komma in A2 (und das Komma selbst) zu entfernen, lautet die Formel:
=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)
Wie diese Formel funktioniert:
Der wichtigste Teil der Formel ist die Funktion FIND, die die Position des n-ten Trennzeichens (in unserem Fall ein Komma) berechnet. So geht es:
Wir ersetzen das 2. Komma in A2 mit Hilfe von SUBSTITUTE durch ein Rautensymbol (oder ein anderes Zeichen, das in Ihren Daten nicht vorhanden ist):
SUBSTITUTE(A2, ",", "#", 2)
Die resultierende Zeichenkette geht an das 2. Argument von FIND, findet also die Position von "#" in dieser Zeichenkette:
FIND("#", "Emma, Design# (102) 123-4568")
FIND sagt uns, dass "#" das 13. Zeichen in der Zeichenkette ist. Um die Anzahl der vorangehenden Zeichen zu erfahren, ziehen Sie einfach 1 ab, und Sie erhalten 12 als Ergebnis:
FIND("#", SUBSTITUTE(A2, ",", "#", 2)) - 1
Diese Nummer geht direkt an die num_chars Argument von LEFT, um die ersten 12 Zeichen aus A2 zu ziehen:
=LEFT(A2, 12)
Das war's!
Löschen von Text vor dem N-ten Vorkommen eines Zeichens
Die allgemeine Formel zum Entfernen einer Teilzeichenkette vor einem bestimmten Zeichen lautet:
RECHTS(ERSATZ( Zelle , " char ", "#", n ), LEN( Zelle ) - FIND("#", SUBSTITUTE( Zelle , " char ", "#", n )) -1)Um zum Beispiel den Text vor dem 2. Komma in A2 zu entfernen, lautet die Formel:
=RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)
Um ein führendes Leerzeichen zu entfernen, verwenden wir wieder die TRIM-Funktion als Wrapper:
=TRIM(RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))))
Wie diese Formel funktioniert:
Zusammenfassend lässt sich sagen, dass wir herausfinden, wie viele Zeichen nach dem n-ten Begrenzungszeichen kommen, und eine Teilzeichenkette der entsprechenden Länge von rechts extrahieren. Im Folgenden wird die Formel aufgeschlüsselt:
Zunächst ersetzen wir das 2. Komma in A2 durch ein Rautensymbol:
SUBSTITUTE(A2, ",", "#", 2)
Die resultierende Zeichenkette wird in den Text Argument von RIGHT:
RIGHT("Emma, Design# (102) 123-4568", ...
Als Nächstes müssen wir festlegen, wie viele Zeichen aus dem Ende der Zeichenkette extrahiert werden sollen. Dazu suchen wir die Position des Raute-Symbols in der obigen Zeichenkette (die 13 ist):
FIND("#", SUBSTITUTE(A2, ",", "#", 2))
und subtrahieren sie von der Gesamtlänge der Zeichenfolge (die 28 beträgt):
LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))
Die Differenz (15) geht an das zweite Argument von RIGHT und weist es an, die letzten 15 Zeichen aus der Zeichenkette im ersten Argument zu ziehen:
RIGHT("Emma, Design# (102) 123-4568", 15)
Die Ausgabe ist eine Teilzeichenkette " (102) 123-4568", die dem gewünschten Ergebnis sehr nahe kommt, mit Ausnahme eines führenden Leerzeichens, das mit der TRIM-Funktion entfernt wird.
So entfernen Sie Text nach dem letzten Vorkommen eines Zeichens
Falls Ihre Werte mit einer variablen Anzahl von Begrenzungszeichen getrennt sind, möchten Sie vielleicht alles nach der letzten Instanz dieses Begrenzungszeichens entfernen. Dies kann mit der folgenden Formel geschehen:
LINKS( Zelle , FIND("#", SUBSTITUTE( Zelle , " char ", "#", LEN( Zelle ) - LEN(SUBSTITUTE( Zelle , " char ", "")))) -1)Angenommen, Spalte A enthält verschiedene Informationen über Mitarbeiter, aber der Wert nach dem letzten Komma ist immer eine Telefonnummer. Ihr Ziel ist es, Telefonnummern zu entfernen und alle anderen Details beizubehalten.
Um das Ziel zu erreichen, können Sie mit dieser Formel den Text nach dem letzten Komma in A2 entfernen:
=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))) -1)
Kopieren Sie die Formel in die Spalte, und Sie erhalten dieses Ergebnis:
Wie diese Formel funktioniert:
Der Kern der Formel ist, dass wir die Position des letzten Begrenzungszeichens (Komma) in der Zeichenkette bestimmen und eine Teilzeichenkette von links bis zum Begrenzungszeichen ziehen. Die Position des Begrenzungszeichens zu ermitteln, ist der schwierigste Teil, und hier ist, wie wir es behandeln:
Zunächst ermitteln wir die Anzahl der Kommas in der ursprünglichen Zeichenkette, indem wir jedes Komma durch ein Leerzeichen ("") ersetzen und die resultierende Zeichenkette an die Funktion LEN übergeben:
LEN(SUBSTITUTE(A2, ",",""))
Für A2 ist das Ergebnis 35, das ist die Anzahl der Zeichen in A2 ohne Kommas.
Ziehen Sie die obige Zahl von der Gesamtlänge der Zeichenfolge (38 Zeichen) ab:
LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))
... und Sie erhalten 3, das ist die Gesamtzahl der Kommas in A2 (und auch die Ordnungszahl des letzten Kommas).
Als Nächstes verwenden Sie die bereits bekannte Kombination aus den Funktionen FIND und SUBSTITUTE, um die Position des letzten Kommas in der Zeichenkette zu ermitteln. Die Instanznummer (in unserem Fall das dritte Komma) wird durch die oben erwähnte Formel LEN SUBSTITUTE geliefert:
FIND("#", SUBSTITUTE(A2, ",", "#", 3))
Es zeigt sich, dass das 3. Komma das 23. Zeichen in A2 ist, was bedeutet, dass wir 22 Zeichen davor extrahieren müssen. Wir setzen also die obige Formel minus 1 in die num_chars Argument der LINKEN:
LINKS(A2, 23-1)
So entfernen Sie Text vor dem letzten Vorkommen eines Zeichens
Um alles vor dem letzten Vorkommen eines bestimmten Zeichens zu löschen, lautet die allgemeine Formel:
RECHT( Zelle , LEN( Zelle ) - FIND("#", SUBSTITUTE( Zelle , " char ", "#", LEN( Zelle ) - LEN(SUBSTITUTE( Zelle , " char ", "")))))In unserer Beispieltabelle sieht die Formel so aus, dass der Text vor dem letzten Komma gelöscht wird:
=RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))))
Als letzten Schliff verschachteln wir sie in die TRIM-Funktion, um führende Leerzeichen zu entfernen:
=TRIM(RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))))
Wie diese Formel funktioniert:
Zusammenfassend lässt sich sagen, dass wir die Position des letzten Kommas, wie im vorherigen Beispiel erläutert, ermitteln und von der Gesamtlänge der Zeichenkette abziehen:
LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))
Als Ergebnis erhalten wir die Anzahl der Zeichen nach dem letzten Komma und übergeben sie an die Funktion RECHTS, so dass sie so viele Zeichen vom Ende der Zeichenfolge entfernt ist.
Benutzerdefinierte Funktion zum Entfernen von Text auf beiden Seiten eines Zeichens
Wie Sie in den obigen Beispielen gesehen haben, können Sie fast jeden Anwendungsfall lösen, indem Sie die Excel-eigenen Funktionen in verschiedenen Kombinationen verwenden. Das Problem dabei ist, dass Sie sich eine Handvoll kniffliger Formeln merken müssen. Wie wäre es, wenn wir eine eigene Funktion schreiben, die alle Szenarien abdeckt? Klingt nach einer guten Idee. Fügen Sie also den folgenden VBA-Code in Ihre Arbeitsmappe ein (die detaillierten Schritte zum Einfügen von VBA in Excel sindhier):
Function RemoveText(str As String , delimiter As String , occurrence As Integer , is_after As Boolean ) Dim delimiter_num, start_num, delimiter_len As Integer Dim str_result As String delimiter_num = 0 start_num = 1 str_result = "" delimiter_len = Len(delimiter) For i = 1 To occurrence delimiter_num = InStr(start_num, str, delimiter, vbTextCompare) If 0 <delimiter_num Then start_num =delimiter_num + delimiter_len End If Next i If 0 <delimiter_num Then If True = is_after Then str_result = Mid(str, 1, start_num - delimiter_len - 1) Else str_result = Mid(str, start_num) End If End If RemoveText = str_result End FunctionUnsere Funktion heißt Text entfernen und hat die folgende Syntax:
RemoveText(string, Trennzeichen, Vorkommen, is_after)Wo:
Zeichenfolge - ist die ursprüngliche Textzeichenfolge und kann durch einen Zellverweis dargestellt werden.
Begrenzungszeichen - das Zeichen, vor/nach dem der Text entfernt werden soll.
Vorkommen - die Instanz des Begrenzers.
Ist_nach - ein boolescher Wert, der angibt, auf welcher Seite des Trennzeichens der Text entfernt werden soll; kann ein einzelnes Zeichen oder eine Folge von Zeichen sein.
- TRUE - löscht alles nach dem Begrenzungszeichen (auch das Begrenzungszeichen selbst).
- FALSE - löscht alles vor dem Begrenzungszeichen (auch das Begrenzungszeichen selbst).
Sobald der Funktionscode in Ihre Arbeitsmappe eingefügt ist, können Sie mit kompakten und eleganten Formeln Teilzeichenfolgen aus Zellen entfernen.
Um zum Beispiel alles nach dem 1. Komma in A2 zu löschen, lautet die Formel in B2:
=RemoveText(A3, ", ", 1, TRUE)
Um alles vor dem 1. Komma in A2 zu löschen, lautet die Formel in C2:
=RemoveText(A3, ", ", 1, FALSE)
Da unsere benutzerdefinierte Funktion eine Zeichenfolge für das Begrenzungszeichen setzen wir ein Komma und ein Leerzeichen (", ") in das 2. Argument, um uns die Mühe zu ersparen, führende Leerzeichen nachträglich abzuschneiden.
Unsere benutzerdefinierte Funktion funktioniert wunderbar, nicht wahr? Aber wenn Sie denken, dass dies die umfassende Lösung ist, haben Sie das nächste Beispiel noch nicht gesehen :)
Alles vor, nach oder zwischen den Zeichen löschen
Wenn Sie noch mehr Optionen zum Entfernen einzelner Zeichen oder von Text aus mehreren Zellen nach Übereinstimmung oder Position benötigen, erweitern Sie Ihre Excel-Toolbox um unsere Ultimate Suite.
Hier werden wir einen genaueren Blick auf die Entfernen nach Position Merkmal auf der Seite Ablebits Daten tab> Text Gruppe> entfernen .
Im Folgenden werden die beiden häufigsten Szenarien behandelt.
Alles vor oder nach einem bestimmten Text entfernen
Angenommen, alle Ihre Quellzeichenfolgen enthalten ein gemeinsames Wort oder einen gemeinsamen Text und Sie möchten alles vor oder nach diesem Text löschen. Dazu wählen Sie Ihre Quelldaten aus, führen die Entfernen nach Position und konfigurieren Sie es wie unten gezeigt:
- Wählen Sie die Alle Zeichen vor dem Text oder Alle Zeichen nach dem Text und geben Sie den Schlüsseltext (oder das Zeichen) in das Feld daneben ein.
- Je nachdem, ob Groß- und Kleinbuchstaben als unterschiedliche oder gleiche Zeichen behandelt werden sollen, aktivieren oder deaktivieren Sie das Feld Groß- und Kleinschreibung beachten Box.
- Hit entfernen .
In diesem Beispiel werden alle Zeichen vor dem Wort "Fehler" in den Zellen A2:A8 entfernt:
Und wir erhalten genau das Ergebnis, nach dem wir suchen:
Text zwischen zwei Zeichen entfernen
Wenn sich irrelevante Informationen zwischen 2 bestimmten Zeichen befinden, können Sie diese schnell löschen:
- Wählen Sie Alle Teilstrings entfernen und geben Sie zwei Zeichen in die unten stehenden Felder ein.
- Wenn auch die "zwischen"-Zeichen entfernt werden sollen, prüfen Sie die Einschließlich Begrenzungszeichen Box.
- Klicken Sie auf entfernen .
Als Beispiel löschen wir alles, was zwischen zwei Tilde-Zeichen (~) liegt, und erhalten als Ergebnis die perfekt bereinigten Zeichenfolgen:
Um weitere nützliche Funktionen dieses multifunktionalen Tools auszuprobieren, empfehle ich Ihnen, eine Testversion am Ende dieses Beitrags herunterzuladen. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche in unserem Blog begrüßen zu dürfen!
Verfügbare Downloads
Erste oder letzte Zeichen entfernen - Beispiele (.xlsm-Datei)
Ultimate Suite - Testversion (.exe-Datei)