- IF関数を文字列を条件にして使用するのはどのようにすればいいのだろう?
- 文字が入っているか空欄かをチェックしたい
そんな思いにお応えできるようこの記事では、
- IF関数で特定の文字列をチェックする方法
- IF関数で文字列が存在するかどうかをチェックする方法
について解説しています。
IF関数については、【エクセル】IF関数のまとめ!基本から応用まで解説の記事で使い方をまとめているので、こちらの記事も是非ご参考下さい。
文字列を条件にIF関数を使用する方法
特定の文字列と等しいかどうかを条件にする
指定した文字列そのものと等しいかどうか?を判定する場合です。
例えば下記で販売先が「安達商事」の場合だけチェックをしたい場合について考えます。

E3セルに数式を作っていきます。まずは=IFから始めます。

B列に販売先の情報が入っているので、「安達商事」と等しいかどうかを論理式に入力します。
B3="安達商事"
というのがB3セルが「安達商事」と等しいかどうか?という式になります。

文字列の場合、ダブルクォテーションで囲うことを忘れないようにしましょう。
今回は等しい場合〇を表示し、そうでない場合は×を表示することとします。

全てのセルに数式をコピーした結果は以下のようになります。

きちんと「安達商事」だけに〇がついていますね。
特定の文字列が含まれているかどうかを条件にする
次に、特定の文字列が含まれているかどうかをチェックする方法です。先ほどと同じ例ですと、「安達」が含まれている場合に〇をつけるといった場合です。
この場合、IF関数だけでチェックすることが難しいので、COUNTIF関数を使用する必要があります。
理由としては、「安達を含む」という条件をエクセルで表現しようとすると「*安達*」というワイルドカードと呼ばれる方法を使うことになるのですが、IF関数の条件でワイルドカードを使うとうまくいかないからです。
文字での説明だと少し分かりにくいと思いますので、具体的にみていきましょう。
まず、IF関数の数式を作っていきます。

次にCOUNTIFを入力します。

COUNTIFの中に指定する最初の値は販売先が入っているセルになるため、
B3
となります。

この次の指定を「安達が含まれている」という意味にしたいのですが、表現としては
"*安達*"
となります。
アスタリスクをつける表現がワイルドカードとよばれ、「安達」を含む全ての文字列を示すことになります。

これで、
販売先に「安達」が含まれるかどうか
という内容をIF関数の条件として設定することができました。

後は、条件を満たす場合と満たさない場合の指定をします。
今回は、
- 条件を満たす場合は〇を表示する
- 条件を満たさない場合は×を表示する
とします。

Enterを押して確定すると結果が表示されます。

下のセルにも数式をコピーした結果は、以下のようになります。

安達商事、安達工業など「安達」が含まれる販売先だけに〇がついていますね。
文字列が存在するかどうかを条件にする
次に、IF関数で文字列が存在するかどうか?をチェックする方法です。
同じ例の方が分かりやすいため、先ほどと同じ表でいくつか空欄になっているセルがあるとします。

セルに文字列が入っているか?を確認できるISTEXT関数とIF関数を組み合わせてチェックします。
最初に=IFから始めるのは今回も同じです。

論理式部分でISTEXT関数を使用します。ISTEXTを入力し、引数として販売先のセルを指定します。

残りの部分は先ほどと同じで、
- 条件を満たす場合は〇を表示する
- 条件を満たさない場合は×を表示する
とします。

数式が完成したらEnterで確定しましょう。

下のセルにコピーすると、販売先が空白の場合×が表示されているのが分かります。

文字列がない(空白)かどうかを条件にする
逆に、セルが空白かどうかをチェックしたい場合はISBLANK関数を使用することができます。
先ほどのISTEXTの部分をISBLANKに変更するだけなので、下記の完成した数式をご覧頂ければと思います。

数式を全てのセルに適用すると、ISTEXT関数を使ったときと結果が逆になっているのが分かりますね。
空欄の場合に〇が表示されています。

- ISTEXT関数:セルに文字列が入っているかどうかを判定する
- ISBLANK関数:セルが空白かどうかを判定する
という違いがありますので状況に応じて使い分けましょう。
まとめ
