12/30/2014

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


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

IF関数+COUNTIF関数

先日、以前教えていた方から、
セルの文字列に該当する文字が含まれているのかチェックしたいので、
IF関数を使ってみたんだけど、うまくいかないので教えてほしい。

とありまして、
該当する文字列が含まれている件数を数えるのではなく、
セル内に該当する文字が含まれているのかを確認したいという、
これまた、Excel病というか、トラブルになりやすいケースが現場で発生したようですので、
ご紹介いたしましたので、今回は、それを書いてみましょう。

該当する文字列が含まれている件数を数えるなら簡単なんですがね。

それでは、下記のような表があります。

D列の横浜市にC列の住所をチェックして、
横浜市という文字が入っていたら○をそうでなければ×を表示させてみたいと思います。

このような○×の時はIF関数を使うので、
D3をクリックして、IF関数のダイアログボックスを表示しましょう。

論理式には、

C3="*横浜*"

この*(アスタリスク)は、ワイルドカードと言って、
「~横浜~」というイメージだとわかりやすいかもしれませんね。

要するにC3の文字列の中に横浜という文字が含まれているか?という意味になります。

こうすると、C3に横浜という文字が含まれていたら?という論理式が作れたことになります。

真の場合には、○。偽の場合には、×を設定して、あとはOKボタンを押して、
オートフィルを使って数式をコピーしてみると…あれれ??

全部×になってしまいました????
これが、今回どうしたらいいですか?というリクエストになります。

答えを教えるのは簡単なので、念のため、まず、ワイルドカードを使って、
横浜市の件数が2件となるのかを確認してみましょう。

C12をクリックして、COUNTIF関数のダイアログボックスを表示させましょう。

範囲には、C3:C10
検索条件には、"*横浜*"
こうすれば、先程のIF関数と同じ検索条件が入力されていますので、
OKボタンをクリックしましょう。

すると、

C12には、2と表示されましたね。つまり、ワイルドカードは間違ってない訳です。
では、IF関数で文字列の判断が出来なかったからでしょうか?
今度は、E列に、神奈川県横浜市という列をつくり、
住所が”神奈川県横浜市”だったら、○。そうでなかったら、×というIF関数を作ってみましょう。

E3をクリックして、IF関数のダイアログボックスを表示しましょう。

論理式には、C3="神奈川県横浜市" と入力しましょう。

これで、C3が神奈川県横浜市だったらという意味になります。

あとは、真の場合には、○。偽の場合には、×を設定して、
OKボタンを押して、オートフィルを使って数式をコピーしてみると…あれれ??

今度は、イメージ通りに、判別してくれましたね。
ということは、IF関数で文字列の判別は大丈夫なのに…ということで、
次回、どうしたらいいのか?

そこで、登場するのが、IF+COUNTIF関数のネスト技なのです。

ということで、次回、その方法をご紹介していきます。