So extrahieren Sie Text zwischen zwei Zeichen in Excel

So extrahieren Sie Text zwischen zwei Zeichen in Excel

Ich versuche, Produktinformationen zwischen „en_US@“ und „;“ zu extrahieren. Wenn ich also beispielsweise „en_US@Terminal Block;“ erhalten würde, würde ich Terminal Block zurückerhalten wollen. Meine Methode hierfür war:

=MID(B2, FIND("en_US@",B2)+6, FIND(";", B2, FIND("@", B2)+1)-FIND("@",B2)-1)

welches ist richtig.

Meine Frage lautet: Kann ich Code schreiben, der „??_??@“ als Option für den zu suchenden Code enthält, sodass ich entweder nach „en_US“ oder „??_??“ suchen würde, um die Textextraktion zu starten?

Antwort1

Das scheint zu funktionieren:

=IF(SUMPRODUCT( -- ISNUMBER(SEARCH({"en_US@","~?~?_~?~?@"},A1)))>0,MID(A1, FIND("@",A1)+1, FIND(";", A1, FIND("@", A1)+1)-FIND("@",A1)-1),"NA")

Die Magie liegt im SUMPRODUCT( -- ISNUMBER(SEARCH({...},cell)))>0 Bit, das hier besprochen wird.Hier

Um mit SEARCH() gezielt nach einem „?“ zu suchen, müssen Sie jedes mit einer Tilde abgrenzen, da die Suche „?“ standardmäßig als Platzhalter behandelt.

Die einzige andere Änderung gegenüber Ihrem Original besteht darin, dass Sie zunächst mit einem IF() beginnen, um zu prüfen, ob eine der Zeichenfolgen gefunden wird, und dann das „@“ finden.

verwandte Informationen