Beitrag aus SmartTools Excel Weekly
Letztes Wort einer Zeichenkette per RegEx-Funktion extrahieren
Excel 365
FRAGE Sie hatten in Ihrem Newsletter vor kurzem eine Formel vorgestellt, mit der sich das letzte Wort einer Zeichenkette ermitteln lässt. Dabei haben Sie selbst darauf hingewiesen, dass die Formel bestimmten Einschränkungen unterliegt. Um das Leerzeichen vor dem letzten Wort zu finden, darf die Formel zum Beispiel nicht nach einem Zeichen suchen, das in der Zeichenkette vorkommt. Deshalb muss die Formel unter Umständen immer wieder an die Excel-Umgebung angepasst werden. Nun habe ich entdeckt, dass Excel 365 neue Funktionen enthält, die mit "regulären Ausdrücken" (Regular Expressions) arbeiten. Wäre es dann nicht möglich, das letzte Wort einer Zeichenkette mit Hilfe der Funktion REGEXEXTRAHIEREN zu ermitteln? Ich habe bislang allerdings noch kein passendes RegEx-Muster gefunden. Können Sie da weiterhelfen?
D. Mantel
ANTWORT Da haben Sie vollkommen recht: Die Funktion REGEXEXTRAHIEREN ist bei der Suche nach dem letzten Wort einer Zeichenkette sicherlich die beste Wahl. Sie ist überaus flexibel und weniger fehleranfällig als andere Formeln.
Entscheidend ist aber der reguläre Ausdruck, der das Suchmuster zum Extrahieren des letzten Wortes beschreibt. Wir haben uns für folgendes Muster entschieden:
"[\p{L}\d-]+(?=[^\p{L}\d-]*$)"
Damit wird nach beliebigen Kombinationen aus Buchstaben, Ziffern oder Bindestrichen gesucht, auf die am Ende der Zeichenkette keine Kombinationen aus Buchstaben, Ziffern oder Bindestrichen folgen.
Mit folgender Formel finden Sie zum Beispiel das letzte Wort einer Zeichenkette in Zelle A2:
=REGEXEXTRAHIEREN(A2;"[\p{L}\d-]+(?=[^\p{L}\d-]*$)")
Wenn in A2 ein Name wie "Klaus-Dieter Odenthal" steht, liefert die Formel den Nachnamen "Odenthal".
Bei Nachnamen, die mit Bindestrichen zusammengesetzt sind, betrachtet das Suchmuster der Formel den gesamten Nachnamen als Einheit, so dass die Formel bei einem Namen wie "Hannelore Müller-Lüdenscheid" als letztes Wort "Müller-Lüdenscheid" liefern würde.
Und selbst Satzzeichen oder Leerzeichen, die auf das letzte Wort einer Zeichenkette folgen, irritiert die RegEx-Formel nicht. Sie werden einfach ignoriert. Wenn in Zelle A2 zum Beispiel der Text
Ich fahre mit dem Zug.
steht, liefert die oben genannte REGEXEXTRAHIEREN-Formel den Text "Zug". Das abschließende Satzzeichen gehört nicht zum Formelergebnis.
