40歳からExcelに挑戦!

Excel 関数 任意の文字が含まれているか判断する


こんばんは。雪ん子です。
お越しいただきありがとうございます。

このブログはExcelやAccessの備忘録です。

初心者なので、変なコードとか出てくるかもしれません( ノД`)
もっと良い方法があったら、どしどしコメント下さいね。

f:id:snow0303:20190704231103j:plain
 

任意の文字(指定した文字)が含まれているかを判断する

例えばA列に名前が入っていた場合。

A B
1 山田
2 たろう
3 山田たろう
4 中村
5 はなこ
6 中村はなこ
7 山田中村

 

山田が含まれているか判断する

A1を検索する場合

数式 含まれている場合 含まれていない場合
=COUNTIF($A1,"*山田*") 1 0
=IF(COUNTIF($A1,"*山田*")>0,"有","無")
=IF(COUNTIF($A1,"*山田*"),"有","無")

探す場所は「$A1」でなく、「A1」や「$A$1」でも大丈夫です。
数式をコピーするか、オートフィルするかなど、使い勝手で変更してください。


「山田」を探したい場合「”山田”」にすれば、「山田」だけ入ったセルで「有」になります。
※検索対象にする文字を「”」で挟みます。

ただ、山田のみの場合の他に、山田で始まったり、山田で終わったり、間に挟まれていたりすることもあるので、山田の前後を「*」で挟んで”あいまい検索”にしています。
※「*」(半角アスタリスク)」は、どんな文字にもどんな文字数にもなれる便利な文字!
 山田*・・・山田で始まる
 *山田・・・山田で終わる
 *山田*・・・山田を含む


一行目の結果「1」=含まれている。「0」=含まれていない。


「1」「0」だと分かりにくいので......
二行目ではIF式を使って「有」「無」を表示させてみました。


試しに三行目で「>0」を省いてみましたが、ちゃんと結果は出ました。


参考
f:id:snow0303:20190804235002j:plain

中村が含まれているか判断する

A1を検索する場合

数式 含まれている場合 含まれていない場合
=COUNTIF($A1,"*中村*") 1 0
=IF(COUNTIF($A1,"*中村*")>0,"有","")
=IF(COUNTIF($A1,"*中村*"),"有","")

先ほどの「山田」部分を「中村」に変更。


一行目の結果「1」=含まれている。「0」=含まれていない。


今回の二行目では含まれていない時には何も表示させないようにしました。


三行目で「>0」は省いていますが、こちらも大丈夫そう。


参考
f:id:snow0303:20190804235018j:plain

山田と中村の両方が含まれているか判断する

A1を検索する場合

数式 含まれている場合 含まれていない場合
=COUNTIFS($A1,"*山田*",$A1,"*中村*") 1 0
=IF(COUNTIFS($A1,"*山田*",$A1,"*中村*")>0,"両方","") 両方
=IF(COUNTIFS($A1,"*山田*",$A1,"*中村*"),"両方","") 両方

数式の始まり部分がCOUNTIFSに変わっています。


また、カッコ内で条件を二つ設定しています。
$A1,"*山田*"・・・山田は含まれているか
$A1,"*中村*"・・・中村は含まれているか


結果「1」=含まれている。「0」=含まれていない。


二行目では含まれていない時には何も表示させないようにしました。


三行目で「>0」は省いていますが、こちらも大丈夫そう。


参考
f:id:snow0303:20190804235042j:plain

山田だけ、中村だけ、両方含まれているか、どちらも含まれていないのかを判断する

上で紹介した数式を組み合わせる


A1を検索する場合

数式
=IF(COUNTIFS($A1,"*田中*",$A1,"*中村*")>0,"両方",IF(COUNTIF($A1,"*山田*")>0,"山田のみ",IF(COUNTIF($A1,"*中村")>0,"中村のみ","")))
=IF(COUNTIFS($A1,"*田中*",$A1,"*中村*"),"両方",IF(COUNTIF($A1,"*山田*"),"山田のみ",IF(COUNTIF($A1,"*中村"),"中村のみ","")))

結果
山田 山田のみ
たろう
山田たろう 山田のみ
中村 中村のみ
はなこ
中村はなこ 中村のみ
山田中村 両方
中山田村 山田のみ


二段目で「>0」を省いていますが、やっぱり大丈夫そう。


参考
f:id:snow0303:20190805011038j:plain
f:id:snow0303:20190805011843j:plain

セルに入力した文字が含まれているかを判断する

こんな感じ。

A B
1 検索
2 山田
3
4 山田
5 たろう
6 山田たろう
7 中村
8 はなこ
9 中村はなこ


探したい文字を「A2」に設定。
「A4」から下に検索対象、
「B4」から下に数式を入れる。

セル 数式
B4 =IF(COUNTIF($A4,"*"&$A$2&"*"),"有","")
B5 =IFCOUNTIF($A5,"*"&$A$2&"*"),"有","")

ここでは簡単な数式にしていますが、上で紹介したどの数式でも可能です。


先ほどまでは、「"*田中*"」などと記入していましたが、「A2」の文字を探したいので絶対参照の「$A$2」、更に"あいまい検索"したいので「"*"&$A$2&"*"」としています。


こうすると、数式を変えずにA2の検索したい文字だけを変えていけば良いので楽になります。


参考
f:id:snow0303:20190805011117j:plain
f:id:snow0303:20190805011121j:plain