IF関数の仕組みをおさらい

データの内容を判定する定番の関数といえば、IF(イフ)関数ですよね。構文は以下のとおりです。

=IF論理式, 真の場合, 偽の場合

  1. 論理式] ... データを判定する条件式(論理式)
  2. 真の場合] ... 条件に一致する場合の結果
  3. 偽の場合] ... 条件に一致しない場合の結果

例として、ある製品のテスト結果が「80」以上なら「合格」、「80」未満なら「不合格」と表示してみます。

IF関数で3つ以上の条件を指定するコツ

『セルC3の結果が「80」以上』の条件式(論理式)は「C3>=80」です。[真の場合]には「"合格"」、[偽の場合]には「"不合格"」と指定します。

セルC3に入力されているテスト結果を判定したいので、条件式(論理式)は「C3>=80」となります。[論理式][真の場合][偽の場合]の間は、それぞれ半角の「,」で区切って、「"合格"」と「"不合格"」を入力します。表示させる文字列は半角の「"」で囲みます。

では、「80」以上で「合格」、「70」以上で「再検査」、「70」未満は「不合格」とするにはどうしましょう? 一見難しそうですが、IF関数の入れ子(ネスト)の仕組みを理解すれば簡単です。ここではIF関数で2つ、3つと条件が重なるときのコツを紹介します。

[偽の場合]の引数をいったん削除して考える

『「80」以上で「合格」、「70」以上で「再検査」、「70」未満は「不合格」』とすることを考えてみます。まず、先ほど入力した関数式を見てみましょう。

=IF(C3>=80,"合格","不合格")

先頭から「=IF(C3>=80,"合格",」の意味は、『セルC3が「80」以上なら「合格」』です。[偽の場合]の「"不合格"」をいったん削除すると、以下のようになります。

=IF(C3>=80,"合格",

『セルC3が「80」以上なら「合格」』の関数式はこのままでOKなので、これにつながる『「70」以上で「再検査」、「70」未満は「不合格」』の関数式を考えればいいわけです。

IF(C3>=70,"再検査","不合格")

条件は1つなので、すぐに思いつくのではないでしょうか。関数式をあわせると、

=IF(C3>=80,"合格",IF(C3>=70,"再検査","不合格")

となります。ポイントは閉じ括弧「)」の数です。先頭から「(」を数えると2つあります。「(」と「)」の数が一致している必要があるので、末尾に「)」を追加して関数式の完成です。

=IF(C3>=80,"合格",IF(C3>=70,"再検査","不合格"))

完成した関数式は『セルC3が「80」以上なら「合格」、(そうでなければ)セルC3が「70」以上なら「再検査」、「70」未満は「不合格」』という意味になります。

なお、「)」の数が不足している場合、以下のようなメッセージが表示されます。[はい]ボタンをクリックすれば「)」は補完されますが、「)」の数を意識して入力すると関数式の扱いが上達すると思います。

IF関数で3つ以上の条件を指定するコツ

「)」の数が不足している場合に表示されるメッセージです。

実際に操作してみましょう。

1[偽の場合]の引数を削除する

IF関数で3つ以上の条件を指定するコツ

セルD3を編集可能状態にして、[偽の場合]の「"不合格"」を削除します。

IF関数で3つ以上の条件を指定するコツ

「=IF(C3>=80,"合格",」のみになりました。

2続きの関数式を入力する

IF関数で3つ以上の条件を指定するコツ

「=IF(C3>=80,」に続けて、「IF(C3>=70,"再検査","不合格")」と入力します。[Enter]キーはまだ押さないでください。

3「)」を追加する

IF関数で3つ以上の条件を指定するコツ

関数式の末尾に「)」を追加して、[Enter]キーを押します。

4IF関数の条件を追加できた

IF関数で3つ以上の条件を指定するコツ

条件が追加され、関数式の結果が変わりました。

条件の追加によって結果が切り替わりましたね。ただし、この例のように数値を判定する場合は、厳しい条件から順に指定する必要があります。

例えば「=IF(C3>=70,"再検査",IF(C3>=80,"合格","不合格"))」という関数式を考えます。セルC3が「80」だとすると、1つ目の条件「C3>=70」を満たして「再検査」と表示されてしまいます。

3つ目の条件指定も考え方は同じ

今度はもう1つ条件を追加して、『「80」以上で「合格」、「70」以上で「再検査」、「60」以上で「要報告」、「60」未満は「不合格」』としてみましょう。

3つ目の条件を指定する際の考え方も、先ほどと同じです。最終的に入力する関数式は以下になります。

=IF(C3>=80,"合格",IF(C3>=70,"再検査",IF(C3>=60,"要報告","不合格")))

2つ目の条件までは残して「"不合格"」を削除します。

=IF(C3>=80,"合格",IF(C3>=70,"再検査",

追加する条件『「60」以上で「要報告」、「60」未満は「不合格」』は、以下のようになります。

IF(C3>=60,"要報告","不合格")

この関数式をつなげればいいわけです。先ほどと同じように、閉じ括弧「)」の数には注意です。「(」の数にあわせて「)」を2つ追加して3つにします。

1[偽の場合]の引数を削除する

IF関数で3つ以上の条件を指定するコツ

先ほどと同様に、セルD3の関数式から「"不合格"」を削除します。

2続きの関数式を入力する

IF関数で3つ以上の条件を指定するコツ

「=IF(C3>=80,"合格",IF(C3>=70,"再検査",」に続けて、「IF(C3>=60,"要報告","不合格")」と入力します。[Enter]キーはまだ押さないでください。

3「)」を2つ追加する

IF関数で3つ以上の条件を指定するコツ

関数式の末尾に「)」を2つ追加して、[Enter]キーを押します。

4関数式をコピーする

IF関数で3つ以上の条件を指定するコツ

条件を追加できました。結果を確認するためにオートフィルで関数式をコピーします。

IF関数で3つ以上の条件を指定するコツ

結果が変更されました。「80」以上で「合格」、「70」以上で「再検査」、「60」以上で「要報告」、「60」未満は「不合格」となっていることがわかります。

複数の条件を指定する場合、条件が1つのみの関数式を修正するのが簡単です。ここでは都度「"不合格"」を削除して関数式を修正しましたが、慣れてくればピンポイントにIF関数を組み込めるようになると思います。