マイナー・マイナー

隠れた名作の発掘が生きがい。

【Excel】find関数を利用して複数の文字が含まれるかを判定する


スポンサードリンク

あるセルの文字列に"A"または"B"が含まれるかどうかを判定する。
・"A"と"B"が含まれるならば◎
・"A"のみが含まれるならば△
・"B"のみが含まれるならば□
・両方含まれなければ×
上記のような判定を行う数式を一行で記述せよ。


エクセルでこのようなチェック処理を行う場合はfind関数が便利ですが、複数条件指定はできないんですね…しかし、複数条件指定はif文を利用することでできそうです。そのサンプルの数式をメモします。

シートの構成

検索文字1 $B$1
検索文字2 $B$2
検索対象 $B3

f:id:yosinoo:20170403005406p:plain:w320

書いた処理

IF(AND(ISNUMBER(FIND($B$1,$B3)),ISNUMBER(FIND($B$2,$B3))),"◎",IF(ISNUMBER(FIND($B$1,$B3)),"△",IF(ISNUMBER(FIND($B$2,$B3)),"□","×")))

関数の解説

FIND(X,Y)

Xの文字をYから探し出します。見つかれば見つかった文字の開始位置、見つからなければエラー値(#VALUE! )が返されます。

ISNUMBER(X)

Xで指定された文字が数値かそうでないかを判定します。数値であればTRUE、エラー値であればFALSEが返されます。

AND(X,Y)

X=TRUE、かつ、Y=TRUEであればTRUEとなります。それ以外であればFALSEです。

IF(X,Y,Z)

X=TRUEならばY、X=FALSEならばZを実行します。

処理の解説

1. AとBが含まれるかどうかをチェック

IF(AND(ISNUMBER(FIND($B$1,$B7)),ISNUMBER(FIND($B$2,$B7))),"◎","2の処理")


2. Aが含まれるかどうかをチェック

IF(ISNUMBER(FIND($B$1,$B8)),"△","3の処理")


3. Bが含まれるかどうかをチェック(見つからなければ×)

IF(ISNUMBER(FIND($B$2,$B3)),"□","×”)