Anfangsbuchstaben aus einer Zeichenfolge ziehen (Microsoft Excel)
Rajeev braucht eine Formel, die die ersten Buchstaben einer Reihe von Wörtern extrahiert. Wenn eine Zelle beispielsweise den Text „Rajeev Kumar Pandey“ enthält, möchte er die Buchstaben „RKP“ in eine andere Zelle extrahieren.
Die Anzahl der Wörter in Reihe kann von Zelle zu Zelle variieren.
Es gibt verschiedene Möglichkeiten, wie diese Aufgabe angegangen werden kann. Zunächst wird davon ausgegangen, dass Sie die Struktur Ihres Arbeitsblatts nicht durch Hinzufügen von Zwischenspalten ändern möchten. Diese Annahme schließt auch die Verwendung der Funktion „Text in Spalten“ aus, um die ursprüngliche Zeichenfolge in einzelne Wörter aufzuteilen.
Der Schlüssel zum Problem besteht darin, sicherzustellen, dass Ihre Formel bestimmen kann, wo sich die Leerzeichen in der ursprünglichen Zeichenfolge befinden. Sie könnten denken, dass eine Formel wie die folgende die Arbeit erledigt:
=LEFT(A1,1)&MID(A1,FIND(" ",A1,1)+1,1)&MID(A1, FIND(" ",A1,FIND(" ",A1,1)+1)+1,1)
Diese Formel funktioniert teilweise. Es funktioniert einwandfrei, wenn die ursprüngliche Zeichenfolge zwei Leerzeichen enthält, die drei Wörter trennen. Wenn weniger Wörter vorhanden sind, gibt die Formel einen Fehler zurück. Wenn weitere Wörter vorhanden sind, werden nur die ersten Buchstaben der ersten drei Wörter zurückgegeben (nach dem dritten Wort wird alles ignoriert).
Dies bedeutet, dass die Formel nicht nur nach Leerzeichen suchen muss, sondern auch Fehler behandeln muss, wenn keine Leerzeichen vorhanden sind oder wenn zu wenige Leerzeichen vorhanden sind. Die Fehlerprüfung bedeutet, dass die Formel viel länger wird:
=IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ", A1)+1)+1)+1)+1,1)),IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1)), IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)), IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1)), IF(ISERR(LEFT(A1,1)),"",LEFT(A1,1)),LEFT(A1,1) &MID(A1,SEARCH(" ",A1)+1,1)),LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)), LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1)),LEFT(A1,1) &MID(A1,SEARCH(" ",A1)+1,1)&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1) &MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1) +1)+1)+1,1))
Diese Formel verarbeitet alle Elemente von 0 bis 5 Wörtern in einer Zeichenfolge ordnungsgemäß. Es wird auch davon ausgegangen, dass die Zeichenfolge nicht mit einem Leerzeichen beginnt oder endet und nicht mehrere Leerzeichen zwischen Wörtern enthält. Wenn Sie eine größere Anzahl von Wörtern oder andere mögliche Komplikationen (z. B. die Anzahl der Leerzeichen zwischen Wörtern) behandeln möchten, verwenden Sie am besten eine benutzerdefinierte Funktion.
Es gibt eine Reihe von Möglichkeiten, wie eine benutzerdefinierte Funktion die führenden Zeichen aus den Wörtern einer Zeichenfolge ziehen kann. Tatsächlich habe ich einige Variationen erhalten, die das Gleiche bewirken. Das folgende Beispiel ist jedoch möglicherweise der prägnanteste Code, auf den ich gestoßen bin:
Function Initials(Raw As String) As String Dim Temp As Variant Dim J As Integer Application.Volitile Temp = Split(Trim(Raw)) For J = 0 To UBound(Temp) Initials = Initials & Left(Temp(J), 1) Next J End Function
Die Split-Funktion „zerreißt“ eine Zeichenfolge basierend darauf, wo Leerzeichen darin vorkommen. Die einzelnen Wörter in der Zeichenfolge werden in einem Array (in diesem Fall Temp) platziert, in dem Sie dann auf einzelne Wörter zugreifen können. Um die Funktion in Ihrem Arbeitsblatt zu verwenden, verwenden Sie einfach Folgendes:
=Initials(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 (8663) gilt für Microsoft Excel 2007, 2010 und 2013. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: