Erstes und letztes Wort extrahieren (Microsoft Excel)
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 2012 hier“ enthält, benötigt er eine Formel zum Extrahieren von „Reggie“ und eine zum Extrahieren von „2012“.
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 gleich zu erhalten, ist es im Prinzip nur komplizierter, das letzte Leerzeichen in der Zeichenfolge zu finden. Eine Möglichkeit, dies zu tun, ist:
-
Zählen Sie die Anzahl der Leerzeichen. Ändern Sie das letzte Leerzeichen in ein anderes Zeichen (das sich nicht an anderer Stelle in der Phrase befindet)
-
Dann finden Sie das „andere Zeichen“
-
Nehmen Sie den Teil der Phrase rechts von diesem „anderen Zeichen“
Das „andere Zeichen“, das verwendet werden kann, ist das erste ASCII-Zeichen (d. H. Char (1)), das nicht gedruckt wird und sehr unwahrscheinlich in der Phrase enthalten ist. Die Anzahl der Leerzeichen kann ermittelt werden, indem die Differenz zwischen der Länge der Phrase und der Länge der Phrase ohne Leerzeichen verwendet wird (indem SUBSTITUTE verwendet wird, um alle Leerzeichen durch die Nullzeichenfolge zu ersetzen):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
Dann können Sie das letzte Vorkommen des Leerzeichens durch char (1) ersetzen:
SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ","")))
Sie können dann die Position von char (1) in dieser Zeichenfolge finden:
FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))
Das erste Zeichen des letzten Wortes ist 1 Zeichen darüber hinaus:
1+ FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))
Mit der MID-Funktion können Sie dann den Teil der Zeichenfolge extrahieren, der an dieser Stelle bis zum Ende der Zeichenfolge beginnt. (Sie müssen die genaue Länge nicht berechnen. Wenn Sie eine Zahl auswählen, die größer als die Länge des letzten Wortes ist, wird nur das letzte Wort ausgewählt. Sie können also an der obigen Stelle beginnen und die Anzahl der Zeichen in extrahieren die Zeichenfolge, um sicherzustellen, dass Sie genug haben.):
=MID(A1,1+FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1), LEN(A1)-LEN(SUBSTITUTE(A1," ","")))),LEN(A1))
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)
_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 (11984) gilt für Microsoft Excel 97, 2000, 2002 und 2003.
Eine Version dieses Tippes für die Multifunktionsleistenoberfläche von Excel (Excel 2007 und höher) finden Sie hier: