Tom hat ein Arbeitsblatt, das ziemlich viel Text enthält. Er braucht eine Möglichkeit, aus dem Text einer bestimmten Zelle den ersten Buchstaben jedes Wortes in Klammern zu ziehen. Wenn eine Zelle beispielsweise „Es gibt ein Unkraut (während des Frühlings), das beseitigt werden muss“ enthält, muss Tom „dts“ ziehen

aus diesem Text. Er vermutet, dass dies mit einem Makro geschehen muss, weiß aber nicht, wo er anfangen soll.

Wenn Sie diese Aufgabe manuell ausführen möchten, ist dies nicht so schwierig. Ich werde die Schritte schnell und allgemein durchgehen.

Nehmen wir an, Ihr Text befindet sich in Spalte A und jede Zelle enthält nur einen einzigen Satz Klammern. In diesem Fall können Sie Folgendes in Spalte B einfügen:

=IFERROR(LEFT(MID(A1,FIND("(",A1)+1,LEN(A1)),FIND(")", MID(A1,FIND("(",A1)+1,LEN(A1)))-1),"")

Obwohl ich die Formel hier in zwei Zeilen aufgeteilt habe, denken Sie daran, dass es sich um eine einzelne Formel handelt und als solche eingegeben werden sollte. Kopieren Sie so viele Zellen wie nötig nach unten. Was Sie in Spalte B erhalten, ist der Text, der in den ersten Klammern (falls vorhanden) der Zelle enthalten ist.

Wählen Sie als Nächstes alle Zellen in Spalte B aus, drücken Sie Strg + C und fügen Sie dann mit Inhalte einfügen Werte wieder in diese Zellen ein. Dadurch werden die Formeln entfernt, der extrahierte Text in Klammern bleibt jedoch erhalten.

Jetzt sollten die Zellen in Spalte B noch ausgewählt sein. Sie möchten den Assistenten „Text in Spalten“ (auf der Registerkarte „Daten“ des Menübands) verwenden, um die Wörter in einzelne Zellen aufzuteilen. Dies ist einfach, indem Sie ein Leerzeichen als Trennzeichen im Assistenten verwenden. Danach erhalten Sie in jeder Spalte ein einzelnes Wort, beginnend mit Spalte C.

Nun würden Sie in der ersten Spalte, die keine Wörter enthält (sagen wir, das ist Spalte J), ​​die folgende Formel eingeben:

=LEFT(TRIM(C1),1) & LEFT(TRIM(D1),1) & LEFT(TRIM(E1),1)

& LEFT(TRIM(F1),1) & LEFT(TRIM(G1),1)) & LEFT(TRIM(H1),1)

& LEFT(TRIM(I1),1)

Auch dies ist eine einzelne Formel, obwohl sie hier in drei Zeilen angezeigt wird. Dies führt zu Ihren gewünschten Anfangsbuchstaben in Spalte J.

Offensichtlich ist dieser Vorgang „machbar“, wenn Sie nur ab und zu die Buchstaben ziehen müssen. Wenn Sie dies öfter tun müssen, sollten Sie sich besser auf eine benutzerdefinierte Funktion verlassen, um die Arbeit für Sie zu erledigen. Das Folgende ist einfach und funktioniert einwandfrei:

Function PickInitials(sRaw As String) As String     Dim sTemp As String     Dim J As Integer     Dim Wds() As String

sTemp = ""

J = InStr(sRaw, "(")

If J > 0 Then         sTemp = Mid(sRaw, J + 1)

J = InStr(sTemp, ")")

If J > 0 Then             sTemp = Left(sTemp, J - 1)

End If         Wds = Split(sTemp)



sTemp = ""

For J = 0 To UBound(Wds)

sTemp = sTemp & Left(Trim(Wds(J)),1)

Next J     End If     PickInitials = sTemp End Function

Um die Funktion zu verwenden, müssen Sie lediglich Folgendes in einer Zelle verwenden:

=PickInitials(A1)

Die Funktion funktioniert einwandfrei, wenn die Zelle keinen Klammertext enthält, wenn nur eine öffnende Klammer vorhanden ist und sie nicht durch mehrere Leerzeichen zwischen Wörtern ausgelöst wird. Die Funktion behält die Großschreibung der Anfangsbuchstaben bei. Wenn Sie möchten, dass alle Buchstaben in Kleinbuchstaben zurückgegeben werden, können Sie die letzte Zeile des Makros wie folgt ändern:

PickInitials = LCase(sTemp)

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

Dieser Tipp (13622) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.