Ich möchte aus einer Zelle nur das Wort extrahieren, das ein bestimmtes Zeichen ("=") im Text enthält.
A2: Dolly made me a homemade=cake and some muffins
A3: we had cheese=cake for dinner
A4: Everyone loves how the bakery makes some awesome=cakes
Ich möchte, dass aus der Spalte (A2:A4) folgende Ergebnisse in der Spalte (B2:B4) hervorgehen.
B2: homemade=cake
B3: cheese=cake
B4: awesome=cakes
Ich habe die folgende Lösung mit Arbeitsblattfunktionen ausprobiert.
A2: Johnny made his own dinner=lastnight and then cleaned the kitchen
=TRIM(TRIM(IFERROR(RIGHT(SUBSTITUTE(LEFT(A2,SEARCH(" ",A2&" ",SEARCH("=",A2))-1)," ",REPT(" ",LEN(A2))),LEN(C246)),""))),""),
Wie Sie sehen, funktioniert diese Formel nicht, da sie nur Daten rechts vom Symbol ("=") extrahiert, mit den folgenden Ergebnissen. Ich suche hingegen nach einer Lösung, die das ganze Wort (rechts und links) von der Stelle extrahiert, an der das Symbol ("=") steht.
Antwort1
Versuche FolgendesUserDdefiniertFSalbung(UDF)
Public Function Equals(inpt As String) As String
Equals = ""
ary = Split(Application.WorksheetFunction.Trim(inpt), " ")
For Each a In ary
If InStr(1, a, "=") > 0 Then
Equals = a
Exit Function
End If
Next a
End Function
Benutzerdefinierte Funktionen (UDFs) sind sehr einfach zu installieren und zu verwenden:
- ALT-F11 öffnet das VBE-Fenster
- ALT-I ALT-M öffnet ein neues Modul
- Füge das Material ein und schließe das VBE-Fenster
Wenn Sie die Arbeitsmappe speichern, wird die UDF mit gespeichert. Wenn Sie eine Version von Excel verwenden, die älter als 2003 ist, müssen Sie die Datei als .xlsm und nicht als .xlsx speichern.
So entfernen Sie die UDF:
- Öffnen Sie das VBE-Fenster wie oben
- Löschen Sie den Code
- Schließen Sie das VBE-Fenster
So verwenden Sie die UDF aus Excel:
=gleich(A1)
Weitere Informationen zu Makros im Allgemeinen finden Sie unter:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
Und
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Einzelheiten zu UDFs finden Sie unter:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
Damit dies funktioniert, müssen Makros aktiviert sein!
BEARBEITEN #1:
Sie können dies tun, ohneVBA, wobei die gleiche Methodik verwendet wurde. Mit Daten inA1, InC1eingeben:
=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:A)*999-998,999))
und kopieren. Dann inB1eingeben:
=INDEX(C1:IV1,MATCH("*=*",C1:IV1,0))
Antwort2
Excel verfügt über eine Reihe von Textfunktionen, mit denen Sie ein Wort oder einen Text aus einer anderen Textzeichenfolge extrahieren können. Welche Funktion oder Kombination von Funktionen Sie verwenden, hängt von Ihrer Situation ab. Beispiel: Angenommen, Zelle A1 enthält die Textzeichenfolge: „Kreativität erfordert den Mut, Gewissheiten loszulassen“
1. Um die ersten 5 Zeichen der Zeichenfolge zu erhalten, verwenden wir die Funktion LEFT: =LEFT(A1,5) Das Ergebnis ist „Creat“ 2. Um die letzten 11 Zeichen der Zeichenfolge zu erhalten, verwenden wir die RIGHT-Funktion: =RIGHT(A1,11) Das Ergebnis ist „certainties“ 3. Um 7 Zeichen aus der Zeichenfolge ab Position 10 zu erhalten, verwenden wir die MID-Funktion: =MID(A1,10,7). Das Ergebnis ist „y requi“. 4. Um das erste Wort der Zeichenfolge zu erhalten, verwenden wir die Funktionen LEFT und FIND: =LEFT(A1,(FIND(” “,A1)-1)) Das Ergebnis ist „Kreativität“. - Weitere Informationen finden Sie unter:http://www.exceldigest.com/myblog/2009/02/01/how-to-extract-text-from-another-text-string/#sthash.yNDHU7Xe.dpuf