Excel で 2 つの文字間のテキストを抽出する方法

Excel で 2 つの文字間のテキストを抽出する方法

私は「en_US@」と「;」の間から製品情報を抽出しようとしています。たとえば、「en_US@Terminal Block;」が与えられた場合、Terminal Block が返されるようにしたいです。これを行うための私の方法は次のとおりです。

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

どちらが正しい。

私の質問は、テキスト抽出を開始するために「en_US」または「??_??」のいずれかを検索するように、検索するコードのオプションとして「??_??@」を含めるコードを記述できるかどうかです。

答え1

これは動作しているようです:

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

魔法はSUMPRODUCT( -- ISNUMBER(SEARCH({...},cell)))>0ビットにあります。ここ

「?」を具体的に SEARCH() するには、検索ではデフォルトで「?」がワイルドカードとして扱われるため、それぞれをチルダで区切る必要があります。

オリジナルから変更された唯一の点は、IF() で開始して、文字シーケンスの 1 つが見つかるかどうかを確認し、次に "@" を見つけることです。

関連情報