「セル:A1」に「012来所1234567890123456789」と入力されているとして、
まず、「来所」が文字列の何番目に存在するかをチェックします。
「セル:B1」に=FIND("来所",A1,1)と入力すると「4」と表示されると思います。
FIND関数は指定された検索文字列が何文字目に存在するかを確認するための関数です。
次はMID関数でFINDで見つかった数値「4」を基準に10文字振り分ける事を考えます。
ここで注意が必要なのは「来所」の文字の後から10文字になるので
「セル:B1」への式の指定は
=MID(A1,FIND("来所",A1,1)+2,10)
~~~
となります。
次に同じように「出張」の文字の後から10文字になるので
=MID(A1,FIND("出張",A1,1)+2,10)
という指定になります。
次に「出張」又は「来所」のどちらかという条件のもと「セル:B1」に名称を表示するため
IF関数を利用します。
その際、「出張」又は「来所」のいずれも入っていない場合は空白とします。
最終的に「セル:B1」に設定される式は
=IF(ISERROR(FIND("来所",A1,1))=FALSE,MID(A1,FIND("来所",A1,1)+2,10)
,IF(ISERROR(FIND("出張",A1,1))=FALSE,MID(A1,FIND("出張",A1,1)+2,10),"")
)
とすれば、「出張」又は「来所」のいずれかが入っている場合は指定した文字の後の10文字
どちらにも該当しない場合は空白となります。
ちなみに
ISERROR関数はFINDした結果指定された文字列が存在しなかった場合、「True」を返している事を
確認するために使用するものです。
お礼
回答、ありがとうございました。 早速、活用させていただきます。