Excel使ってると、文字列の中に特定の文字が含まれてるかどうか関数で判定してほしい!みたいな時ってありますよね?
例えば、こんなとき。
これは高等学校の住所のデータなんですが、「青森市」にある高校だけに印をつけたい、とか、高校名に「農業」がついてる高校だけに印をつけたい、っていうときありますよね?
ポイントはCOUNTIF関数を組み合わせること
数値が10以上とか100未満とかであればIF関数を使って簡単に処理できますが、文字列の中に特定の文字|文字列があるかどうかは、IF関数ではどうやってもできません。
なので、COUNTIF関数を使って文字列内に特定の文字|文字列がいくつあるかを数えさせ、そのTRUE or FALSE を利用して判定します。
例:高校名に「農業」がついている高校に印をつける
では、ひとつ具体例を用いて説明します。
今回のこのデータではD列に高校名が入っていますので、ここに「農業」が入っていれば「○」を表示し、入っていなければ空白にという関数です。
=if(countif(D4,"*農業*")=1,"○","")
「*(ワイルドカード)」を使うことで完全一致ではなく、部分一致にすることができます
これで、高校名に「農業」が入っていれば「○」を表示し、入っていなければ空白にすることができます。「*農業*」の部分を変えることで、どんな文字列でも関数を使って判定することができます。
例:高校名に「農業」か「工業」がついている高校に印をつける
さっきのパターンの発展形です。
D列の高校名に「農業」か「工業」が入っていれば「○」を表示し、入っていなければ空白にという関数です。
=if(or(countif(D4,"*農業*")=1,countif(D4,"*工業*")=1),"○","")
OR関数を使って、どちらかの条件(「農業」が含まれているか、「工業」が含まれているか)を満たすものを判定することができます。
ちなみに、ここでは「農業」か「工業」にしましたが、「農業」か「工業」か「商業」か「水産」、のようにいくつでもOR関数を使えば大丈夫です。