IF関数であいまい検索をできるようにする方法
スプレッドシートでデータを処理する際、時にはあいまいな検索をしたいことがあるのではないでしょうか?
この記事では、IF関数でワイルドカードを含むあいまい検索を行う方法について解説します。
ワイルドカードとは?
ワイルドカードは特定の文字列を検索したいときに便利な機能のひとつです。
例えば住所録において「大阪府」が含まれる住所を検索したい時には「大阪府*」とすることで「大阪府」から始まる住所を抽出することができます。
ワイルドカードには「*」(アスタリスク)のほかに「?」(クエスチョン)もあります。
以下に使い方の説明をします。
ワイルドカード | 説明 | 例 |
* | 0文字以上の任意の文字列にマッチ | 大阪府*⇒大阪府から始まる全ての住所 |
? | 1文字の任意の文字にマッチ | あ?い⇒あかい、あおい など※あいは一致しない |
IF関数ではワイルドカードは使えない!?
「大阪府」から始まる住所のときは「○」、違う場合は「×」と表示されるようIF関数を使ってみました。
表のとおり、大阪府から始まる住所のときも判定が「×」となっており、うまく機能していないことが分かります。
IF関数だけでは、ワイルドカードを使うことができないのです。
COUNTIF関数でワイルドカードを使う
IF関数だけだとワイルドカードは使うことができませんが、COUNTIF関数と組み合わせることで使えるようになるのです。
COUNTIF関数とは条件に当てはまるセルなどの数を数える関数です。
構文:COUNTIF(範囲, 検索条件)
先ほどの表でCOUNTIF関数とワイルドカードを使ってみましょう。
=COUNTIF(B2,”大阪府*”)
「大阪府」から始まる住所の時は「1」、違う時は「0」が返ってきています。これは「大阪府」から始まる文字がいくつあるかを返してくれているのです。
IF関数とCOUNTIF関数と組み合わせてワイルドカードを使う
COUNTIF関数でワイルドカードを使った結果に対してIF関数で条件を付けていきましょう。
COUNTIF関数を使うと、先ほどのように「大阪府」から始まる住所は「1」が返ってくるのでIF関数の条件で計算結果が「1」の時は「○」を、計算結果が「0」の時は「×」を返ってくるようにしてみましょう。
=IF(COUNTIF(B2,”大阪府*”)=1,”○”,”×”)
これで、「大阪府」から始まる住所を「○」と判定することができました!
ワイルドカードで複数条件を検索するとき
ここまでこれたら、応用例も覚えておきましょう!複数条件を設定したいときにはCOUNTIFS関数を使用します。
構文:COUNTIFS(範囲1, 検索条件1, 範囲2, 検索条件2, …)
例えば先ほどの住所から「大阪府」で始まり、「区」を含む住所の場合「○」と判定するようにしてみましょう。
=IF(COUNTIFS(B2,”大阪府*”,B2,”*中央区*”)=1,”○”,”×”)
それぞれの条件に当てはまっている時は「1」が返ってくるので、その時は「○」と判定させているのです。
まとめ
あいまい検索というとワイルドカードを使いたくなりますが、IF関数ではそのままでは使うことができません。COUNTIF関数のようなワイルドカードが使える関数と組み合わせてあげることでIF関数でもあいまい検索ができるようになりますので、是非覚えて活用してみてください!
COUNTIF関数が使いこなせるようになればCOUNTIFS関数も使えると思いますのでこちらもどんどん使っていきましょう!
コメント