1/02/2015

Excel。セル内の文字が含まれているかのチェックは簡単に出来ません。後編


Excel。セル内の文字が含まれているかのチェックは
簡単に出来ません。後

IF関数+COUNTIF関数

先日、以前教えていた方から、
セルの文字列に該当する文字が含まれているのかチェックしたいので、
IF関数を使ってみたんだけど、うまくいかないので教えてほしい。
とありまして、該当する文字列が含まれている件数を数えるのではなく、
セル内に該当する文字が含まれているのかを確認したいという、
これまた、Excel病というか、トラブルになりやすいケースが現場で発生したようですので、
ご紹介いたしましたので、今回は、それを書いてみましょう。

ということで、今回は前回の続き。
後編。

いよいよ、どうすればいいのかに迫っていきましょう。

まずは、前回の続きの表ですが、

住所に横浜市という文字が含まれていたら○、
そうでなければ×というIF関数を使って算出しようとして、”*横浜*”というように、
ワイルドカードを使ってみたけどうまくいかない。

かといって、論理式に、”神奈川県横浜市”とすれば、ちゃんと、判定してくれる。

要するに、IF関数のダイレクトでは、ワイルドカードが使えないのです。

どうしたらいいのでしょうか?
そこで、登場するのがIF関数+COUNTIF関数というネスト技なのです。

そこで、まずは、F3をクリックして、IF関数のダイアログボックスを表示させましょう。

ワンポイントですが、論理式には、関数をネストする場合、
先に、真の場合・偽の場合に入力しておくと、ネスト先でエラーになりませんので、
真の場合に○、偽の場合に×を入力して論理式をクリックします。

では、論理式に、COUNTIF関数のネストを作っていきますので、
名前ボックスの▼をクリックして、COUNTIF関数を選択しましょう。

一覧の中に、COUNTIF関数が無い場合には、その他の関数から、
COUNTIF関数を選びましょう。

すると、COUNTIF関数のダイアログボックスが表示されます。

範囲には、C3。
検索条件には、"*横浜*" と入力しましょう。
あとは、OKボタンをクリックして、オートフィルを使って数式をコピーしてみると…おおっ!

ちなみに、F3の数式は、
=IF(COUNTIF(C3,"*横浜*"),"○","×")
です。このようにIF関数+COUNTIF関数のネストで問題が解決することができました。

なかなか発想しにくいテクニックですので、
少しこんなやり方があることを知っていると実務実践で役に立つ機会があると思います。

ところで、ご質問があった方から、
数式のネストのところ、COUNTIF(C3,"*横浜*")となっていて、
どこにもC3が横浜だったらのようになっていないのですが?と改めてご質問がありました。

次回は、数式の検証を使って、謎を解明したいと思います。