セル内に特定の文字列が含まれているかどうか判定する方法
見出しの通りですが、今回は、セルに特定の文字列が含まれているかどうかを判定する方法を紹介します!
やりたいこと
次のサンプルのようなデータがあったとします。※都道府県の一覧データです。
このデータのB列に、「県が付く県」「それ以外」という列を追加するために数式を作りたいということを考えてみます。
つまり、セル内に「県」が入っているかどうかを判定したいわけですね。
使う関数
- IF関数
- COUNTIF関数
この2つの関数を使うことで「県」の有無を判定して、「県が付く県」「それ以外」と入れるこが出来る数式が作れます。
こういったときには、やりたいことを分解して考えます。
考えることは2つに分解出来ますね。
- セル内の文字列に「県」が入っているかどうか
- 県が入っている場合、「県が付く県」、入っていない場合、「それ以外」と入力
セル内の文字列に「県」が入っているかどうか
ここで、COUNTIF関数を使います。
サンプルのB2セルに次の数式を入れましょう。
=COUNTIF(A2,”*県*”)
COUNTIF関数は、範囲内の中で特定の文字列と一致するセルの数を数える関数です。
特定の文字列の指定には「*」ワイルドカードを使ったあいまい検索も可能です。
※COUNTIF関数について詳しく知りたい方は、こちらの記事も参考にしてください。
今回のサンプルでやりたいことは、1つのセル内に含まれているかどうかなので、COUNTIFの関数の範囲にあたる部分を1つのセルにします。
「*」ワイルドカードで文字列を挟んでいる「*県*」は、「県」の前後は何でもOKという意味でしたね。
つまり、指定したセルに、「県」が入っていれば、COUNTIF関数で数えられて「1」が、入っていなければ「0」が返ってくるということになります。
実際に入れると次の図のようになりますね。
決定します。
北海道は、「県」が入ってないので「0」が返ります。
下までコピペします。
「県」が含まれているセルだけ、「1」が返っていることが分かりますね。
これで、セル内に「県」が含まれているかどうかは分かりました。
県が入っている場合、「県が付く県」、入っていない場合、「それ以外」と入力
後は簡単ですね。先程のCOUNTIF関数での返り値が「1」なら「県が付く県」、そうで無いなら「それ以外」というのをIF関数で条件分岐させます。
B2セルの数式「=COUNTIF(A2,”*県*”)」を次のように修正します。
=IF(COUNTIF(A2,”*県*”)=1,”県が付く県”,”それ以外”)
IF関数の構文はこうです。
=IF(条件式 , 真の場合, 偽の場合)
この条件式の部分を「COUNTIF(A2,”*県*”)=1」とすることで条件分岐が可能ですね。
※IF関数について詳しく知りたい方は、次の記事を参考にしてください。
実際に入れてみます。
決定します。
北海道は「県」が付かないので、「それ以外」になりましたね。
下までコピペしましょう。
「県」が付くところとそうで無いところで、分けることが出来ました(^o^)
おまけ
COUNTIF関数の記事にも書いていますが、ワイルドカードの使い方で、前方一致や後方一致なども判定出来ます。
前方一致
◯◯*
「*」を文字列の後ろにだけ付ける
“京都府”には反応しますが、”東京都”には反応しません。
後方一致
*◯◯
「*」を前に付ける
“東京都”には反応しますが、”京都府”には反応しません
まとめ
セル内に特定の文字列が含まれているかどうか判定する方法を紹介しました。関数の組み合わせのアイデアでいろんなことが出来ます!考えるコツは「やりたいことを細かく分解する」です。
コメント