Reggie hat eine Zelle, die drei oder mehr Wörter enthält. (Die Anzahl der Wörter kann variieren.) Er benötigt eine Formel, mit der er entweder das erste Wort der Zelle oder das letzte Wort der Zelle extrahieren kann. Wenn die Zelle beispielsweise den Ausdruck „Reggie war 2016 hier“ enthält, benötigt er eine Formel zum Extrahieren von „Reggie“ und eine zum Extrahieren von „2016“.

Sie können beide Wörter mit Formeln extrahieren. Das erste Wort zu extrahieren ist relativ einfach. Alles, was Sie tun müssen, ist, die Position des ersten Leerzeichens in der Phrase zu finden und dann das zu extrahieren, was sich links davon befindet. Wenn man annimmt, dass die Phrase in A1 ist, kann man die Formel verwenden:

=LEFT(A1,FIND(" ",A1)-1)

Um das letzte Wort zu extrahieren, benötigen Sie eine etwas andere Formel:

=TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",255)),255))

Diese Formel ändert die Leerzeichen in Zeichenfolgen mit 255 Leerzeichen. Dann findet es die letzten 255 Zeichen und schneidet die Zeichen nach links, wobei das letzte Wort übrig bleibt.

Wenn Sie möchten, können Sie auch benutzerdefinierte Funktionen erstellen, um die gewünschten Wörter zu erfassen. Das erste Wort zu finden ist einfach:

Function FirstWord(c As String)

Dim arr

arr = Split(Trim(c), " ")

FirstWord = arr(LBound(arr))

End Function

Die Funktion verwendet die Split-Funktion, um alles in der angegebenen Zelle auseinander zu ziehen, wobei der zweite Parameter („“) als Trennzeichen verwendet wird. Jedes Element im Array (arr) enthält dann einen Teil der ursprünglichen Zeichenfolge. In diesem Fall wird das erste Element (von LBound angegeben) des Arrays zurückgegeben – das erste Wort.

Da die Wörter aus der Phrase in einem Array platziert werden, können Sie nur eine geringfügige Variation der Funktion verwenden, um das letzte Wort zurückzugeben:

Function LastWord(c As String)

Dim arr

arr = Split(Trim(c), " ")

LastWord = arr(UBound(arr))

End Function

Beachten Sie, dass die einzige wirkliche Änderung in der Funktion im Wesentlichen die Verwendung von UBound anstelle von LBound ist. Die UBound-Funktion gibt das letzte Element des Arrays an. Sie können diese beiden Funktionen in einem Arbeitsblatt folgendermaßen verwenden:

=FirstWord(A1)

=LastWord(A1)

Wenn Sie möchten, können Sie die Split-Funktion umgehen und stattdessen einige andere Zeichenfolgenfunktionen verwenden:

Function GetFirst(c As String)

GetFirst = Left(c, InStr(c, " ") - 1)

End Function
Function GetLast(c As String)

GetFirst = Mid(c, InstrRev(c, " ") + 1)

End Function

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (11985) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.

Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: