Excelで指定の文字列を含むかを判定するIF関数を使った方法

 ここでは、IF関数を使った「指定の文字列が含まれているかを判定する方法」を解説します。

 

特に複数条件は「どちらにも当てはまる」、「どちらかに当てはまる」の両方説明します。

 

これでIF関数の論理式を「含む条件」で指定できるようになりますよ。

1.まずはやりたいことを確認

まずは、やりたいことを例も見ながら確認します。

 

1-1.IF関数で文字列を含む条件にしたい

やりたいことは、「IF関数で文字列を含む条件にする」ことです。

 

この時普段のIF関数の使い方と違ってくるのは、「条件値の指定の仕方」です。

 

逆にいうと、条件値の指定の仕方を覚えれば、「含む」条件で判定ができるようになります。

 

1-2

.例で確認

一つ例を見てみましょう。

IF関数「特定の文字列を含む」-例の表

IF関数で含む条件ができると、例えば「B列の研修名に『社内』と入っているものだけに『○』を付ける」といったことができます。

 

IF関数「特定の文字列を含む」-正しい結果

「特定の文字を含む/含まないで返す値を変えたい時」に便利です。

 

1-3

.ワイルドカードだけではダメ

エクセル関数で含む条件にする時、よく使われるのが「ワイルドカード」です。「*」や「?」を付けることで、含む条件にすることができます。

 

しかし、結論から言うと、「IF関数でワイルドカードは使えません」。

IF関数「特定の文字列を含む」-間違った方法

先程の例で、

=IF($B3="*社内*","○","")

と入れても「不一致(偽)」と判定されてしまいます。

 

そのため、ひと工夫が必要です。

2.「COUNTIF(S)関数」を組み合わせる

IF関数で「文字列を含む」の条件にするには、「COUNTIF関数」か「COUNTIFS関数」を組み合わせます。

 

2-1.COUNTIF(S)関数とは

COUNTIF関数やCOUNTIFS関数は、「条件に合うセルをカウント」できる関数です。

 

違いは「指定できる条件の数」で、COUNTIF関数は「条件一つ」、COUNTIFS関数は「複数条件」の指定ができます。

 

2-2.組み合わせるとなぜできるのか?

まず、IF関数はワイルドカードが使えません。対して、COUNTIF(S)関数は使えます。

 

そこで、IF関数の論理式にCOUNTIF(S)を組み合わせ、条件値を含むかどうかをカウントさせます。

 

IF関数の論理式は、「0は偽」、「0以外は真」と判定しますので、結果「含む」場合は真、「含まない」場合は偽の値が返ってくるのです。

3.「条件一つ」の数式の形と作り方

まず、「文字列を含む」の条件が一つの場合の数式の形と作り方です。

 

3-1.数式の形

数式の形は、条件値を「文字列」にするか「セル番号」にするかで変わってきます。

 

それぞれ次の通りです。

【文字列の場合】

=IF(COUNTIF(判定対象,"*条件値*"),真の場合,偽の場合)

条件値を文字列にする場合には、「条件値」に「含むかを確認したい文字列」を入れます。

 

【セル番号の場合】

=IF(COUNTIF(判定対象,"*"&セル番号&"*"),真の場合,偽の場合)

条件値をセル番号にする場合には、「セル番号」に「含むかを確認したい文字列の入ったセル番号」を入れます。

 

なお、どちらも「判定対象」には、「条件値を含むかを確認したいセル番号」を入れます。

 

3-2.数式の作り方

次に、数式の作り方を見てみます。

IF関数「特定の文字列を含む」-例の表

先程の例のセルD3に、「『社内』という文字を含むなら○、含まないなら空白」という数式を作ってみます。

 

なお、例の画像は「条件値に文字列を入れる場合」ですが、セル番号の場合もほぼ変わりありません。

 

以下手順です。

 

(1)以下の数式をコピーし、セルに貼り付ける

【文字列の場合】

=IF(COUNTIF(判定対象,"*条件値*"),真の場合,偽の場合)

 

【セル番号の場合】

=IF(COUNTIF(判定対象,"*"&セル番号&"*"),真の場合,偽の場合)
IF関数「特定の文字列を含む」-数式の作り方1

 

(2)「判定対象」の文字を消し、「判定したいセル番号」を入れる

IF関数「特定の文字列を含む」-数式の作り方2

 

(3)「条件値」または「セル番号」の文字を消し、「含むかを確認したい文字列」または「セル番号」を入れる

IF関数「特定の文字列を含む」-数式の作り方3

 

(4)「真の場合」と「偽の場合」の文字を消し、それぞれ入れる

IF関数「特定の文字列を含む」-数式の作り方4

 

(5)Enterキーを押せば完了

IF関数「特定の文字列を含む」-数式の作り方5

 

必要に応じて他のセルにコピーします。

IF関数「特定の文字列を含む」-数式を作った結果

セルD3に入れた数式は、それぞれ次のようになります。

【文字列の場合】

 =IF(COUNTIF(B3,"*社内*"),"○","")

 

【セル番号の場合】

 =IF(COUNTIF(B3,"*"&E1&"*"),"○","")

 ※条件値がセルE1にある場合

4.「複数条件でAND」の数式の形と作り方

続いて、「文字列を含む」の条件が複数で「AND(どれにも一致)」の場合の数式の形と作り方です。

 

4-1.数式の形

数式の形は、それぞれ次の通りです。

【文字列の場合】

=IF(COUNTIFS(判定対象1,"*条件値1*",判定対象2,"*条件値2*"),真の場合,偽の場合)

「判定対象」と「条件値」が2つで1セットです。

 

やはり、「条件値」に「含むかを確認したい文字列」を入れます。

【セル番号の場合】

=IF(COUNTIFS(判定対象1,"*"&セル番号1&"*",判定対象2,"*"&セル番号2&"*"),真の場合,偽の場合)

こちらも、「セル番号」に「含むかを確認したい文字列の入ったセル番号」を入れます。

 

なお、どちらも「判定対象」には、「条件値を含むかを確認したいセル番号」を入れます。

 

4-2.数式の作り方

次に、数式の作り方を見てみます。

IF関数「特定の文字列を含む」-例の表

先程の例のセルD3に、「『エクセル』と『社内』という文字を含むなら○、含まないなら空白」という数式を作ってみます。

 

なお、例の画像は「条件値に文字列を入れる場合」ですが、セル番号の場合もほぼ変わりありません。

 

以下手順です。

 

(1)以下の数式をコピーし、セルに貼り付ける

【文字列の場合】

=IF(COUNTIFS(判定対象1,"*条件値1*",判定対象2,"*条件値2*"),真の場合,偽の場合)

 

【セル番号の場合】

=IF(COUNTIFS(判定対象1,"*"&セル番号1&"*",判定対象2,"*"&セル番号2&"*"),真の場合,偽の場合)

※条件が2つの場合

IF関数「特定の文字列を含む」-数式の作り方and1

 

(2)「判定対象」の文字を消し、「判定したいセル番号」を入れる

IF関数「特定の文字列を含む」-数式の作り方and2

 

(3)「条件値」または「セル番号」の文字を消し、「含むかを確認したい文字列」または「セル番号」を入れる

IF関数「特定の文字列を含む」-数式の作り方and3

 

(4)「真の場合」と「偽の場合」の文字を消し、それぞれ入れる

IF関数「特定の文字列を含む」-数式の作り方and4

 

(5)Enterキーを押せば完了

IF関数「特定の文字列を含む」-数式の作り方and5

 

必要に応じて他のセルにコピーします。

IF関数「特定の文字列を含む」-数式を作った結果and

セルD3に入れた数式は、それぞれ次のようになります。

【文字列の場合】

 =IF(COUNTIFS(B3,"*エクセル*",B3,"*社内*"),"○","")

 

【セル番号の場合】

 =IF(COUNTIFS(B3,"*"&E1&"*",B3,"*"&F1&"*"),"○","")

 ※条件値がセルE1とF1にある場合

 

なお、条件を増やす場合には、COUNTIFS関数のカッコ内の最後に「,判定対象,"*条件値*"」、または「,判定対象,"*"&セル番号&"*"」を条件の数分だけ足せばOKです。

5.「複数条件でOR」の数式の形と作り方

最後に、「文字列を含む」の条件が複数で「OR(どれかに一致)」の場合の数式の形と作り方です。

 

5-1.数式の形

数式の形は、それぞれ次の通りです。

【文字列の場合】

=IF(COUNTIF(判定対象1,"*条件値1*")+COUNTIF(判定対象2,"*条件値2*"),真の場合,偽の場合)

「判定対象」と「条件値」が2つで1セットです。

 

やはり、「条件値」に「含むかを確認したい文字列」を入れます。

【セル番号の場合】

=IF(COUNTIFS(判定対象1,"*"&セル番号1&"*",判定対象2,"*"&セル番号2&"*"),真の場合,偽の場合)

こちらも、「セル番号」に「含むかを確認したい文字列の入ったセル番号」を入れます。

 

なお、どちらも「判定対象」には、「条件値を含むかを確認したいセル番号」を入れます。

 

5-2.数式の作り方

次に、数式の作り方を見てみます。

IF関数「特定の文字列を含む」-例の表

先程の例のセルD3に、「『エクセル』か『ワード』という文字を含むなら○、含まないなら空白」という数式を作ってみます。

 

なお、例の画像は「条件値に文字列を入れる場合」ですが、セル番号の場合もほぼ変わりありません。

 

以下手順です。

 

(1)以下の数式をコピーし、セルに貼り付ける

【文字列の場合】

=IF(COUNTIF(判定対象1,"*条件値1*")+COUNTIF(判定対象2,"*条件値2*"),真の場合,偽の場合)

 

【セル番号の場合】

=IF(COUNTIFS(判定対象1,"*"&セル番号1&"*",判定対象2,"*"&セル番号2&"*"),真の場合,偽の場合)

※条件が2つの場合

IF関数「特定の文字列を含む」-数式の作り方or1

 

(2)「判定対象」の文字を消し、「判定したいセル番号」を入れる

IF関数「特定の文字列を含む」-数式の作り方or2

 

(3)「条件値」または「セル番号」の文字を消し、「含むかを確認したい文字列」または「セル番号」を入れる

IF関数「特定の文字列を含む」-数式の作り方or3

 

(4)「真の場合」と「偽の場合」の文字を消し、それぞれ入れる

IF関数「特定の文字列を含む」-数式の作り方or4

 

(5)Enterキーを押せば完了

IF関数「特定の文字列を含む」-数式の作り方or5

 

必要に応じて他のセルにコピーします。

IF関数「特定の文字列を含む」-数式を作った結果or

セルD3に入れた数式は、それぞれ次のようになります。

【文字列の場合】

=IF(COUNTIF(B3,"*エクセル*")+COUNTIF(B3,"*ワード*"),"○","")

 

【セル番号の場合】

=IF(COUNTIF(B3,"*"&E1&"*")+COUNTIF(B3,"*"&F1&"*"),"○","")

 ※条件値がセルE1とF1にある場合

 

なお、条件を増やす場合には、COUNTIF関数を条件の数分だけ増やして足せばOKです。

6.判定対象が他ブックなら別の関数で

以上、IF関数で文字列を含む条件にする方法を解説しました。

 

ただし、「判定対象」が「他のブック(ファイル)」にある場合には、紹介した数式ではうまく判定できません。

 

なぜなら、COUNTIF関数やCOUNTIFS関数は「開いていない他のファイルの中身を見ることができない」からです。

 

別の方法は、次のページで紹介します。

⇒ 「IF関数で他ブック/ファイル上の値を含む条件で判定する方法」へはこちら

 

以上、参考になれば幸いです。

 

また、関数に関連したページもたくさんありますので、以下のリンクから参考にしてください。


口コミ・評判のいいExcel本の紹介】


Top