【エクセル】IF関数で4つ以上の複数条件で利用する手順を紹介。入れ子(ネスト)を使う!

エクセルのIF関数を複数の条件で使う方法

Excel(エクセル)のIF関数は設定した論理式に対して【真】か【偽】かという判定で表示させる結果を変えることが出来る関数です。

例えば、IF関数は以下のように2つの条件(80以上か、それ以外か)で利用し、【○】や【×】を表示させることが出来ます。

=IF(C4>=80,"〇","×")

では、IF関数で【◎】と【○】と【×】を表示させる場合は、どのように利用すればよいでしょうか。

この記事では、IF関数で3つの条件4つの条件などの複数条件に対応して、表示方法を分岐させる方法を解説します。

また、最後の見出しでは、IFS関数(イフス)というIF関数を複数条件で設定することが出来る新関数の使い方も紹介します。

IF関数の構文と引数

IF関数の構文(書式)と引数を紹介します。

十分理解されている方は次の見出しまで読み飛ばしてくださいね。

IF関数の構文と引数は以下のようになっています。

=IF(論理式,[値が真の場合],[値が偽の場合])

IF関数の仕組みをフロー図で表すと以下のようになります。

ひし形が論理式の分岐点となっていて、論理式の条件に合っていれば(値が真の場合)【結果1】を表示し、合っていなければ(値が偽の場合)【結果2】を表示します。

図解.エクセルのIF関数の構文のイメージ図
図解.エクセルのIF関数の構文のイメージ図

IF関数の使い方(条件が2つ)

まずはIF関数の基本的な使い方を紹介します。

下のテスト結果表の点数が80点以上か80点未満かによって【○】と【×】を表示させる方法を紹介します。

テスト結果を【○】と【×】で判定
テスト結果を【○】と【×】で判定

まず、IF関数を入力するセルを選択し、セルに「=IF(」と入力します。

=IF(

図解.IF関数を2つの条件で使う手順①
図解.IF関数を2つの条件で使う手順①

続いて論理式を入力します。論理式を入力の後は、カンマ「,」で区切ります。

=IF(C3>=80,

図解.IF関数を2つの条件で使う手順➁
図解.IF関数を2つの条件で使う手順➁

論理式の条件に値が入っていれば、「〇」を表示するように引数を指定します。「〇」のような文字列を指定する場合は、””(ダブルクォーテーション)で文字を囲みます。

=IF(G3>=80,"〇",

図解.IF関数を2つの条件で使う手順③
図解.IF関数を2つの条件で使う手順③

論理式の条件に値が入っていない場合、「×」を表示するように引数を指定します。「×」のような文字列を指定する場合は、””(ダブルクォーテーション)で文字を囲みます。

=IF(C3>=80,"〇","×"

図解.IF関数を2つの条件で使う手順④
図解.IF関数を2つの条件で使う手順④

IF関数を挿入したD3セルに「×」と表示されます。

下のセルにもIF関数を挿入するため、セルの右下にカーソルを合わせて、カーソルのポインターが十字マークに変わった状態で下にドラッグしてください。(オートフィルの利用)

図解.IF関数を2つの条件で使う手順⑤
図解.IF関数を2つの条件で使う手順⑤

そうすると、80点以上か80点未満かによって【○】と【×】を表示させることが出来ます。

図解.IF関数を2つの条件で使う手順⑥
図解.IF関数を2つの条件で使う手順⑥

IF関数の複数条件には入れ子(ネスト)を使う!

エクセルで関数の中に関数を使うことをネスト(入れ子)と言います。

IF関数で【○】【△】【×】といったような3つ以上の複数条件を指定するためには、IF関数の中にIF関数をネスト(入れ子)します。

下の赤字の部分がネストの部分です。

=IF(C4>=80,"〇",IF(C4>=60,"△","×"))

このようなIF関数の使い方の手順を下の見出しで紹介していきます。

IF関数の複数条件の使い方(条件が3つ)

IF関数で【○】【△】【×】の3つの複数条件を指定する手順を紹介します。

上の見出しで紹介したとおり、IF関数の中にIF関数を使う『ネスト』を利用します。

下の手順1~手順7に沿って作業すれば、誰でも簡単にIF関数の複数条件を利用するが出来ます。

IF関数で3つの複数条件を指定するには?
IF関数で3つの複数条件を指定するには?

今回は上の表を使って、80点以上であれば【○】、60点以上であれば【△】、それ以外は【×】が表示されるように関数を作成していきます。

手順1.IF関数と論理式を入力する

IF関数を入力するセルを選択し、セルに「=IF(」と入力した後に論理式を入力します。まず80点以上かどうかを判定する論理式を入力します。

=IF(C3>=80,

手順1.IF関数の論理式を入力する
手順1.IF関数の論理式を入力する

手順2.値が真の場合を入力する

続いて、論理式の条件に値が入っていれば、「〇」を表示するように引数を指定します。「〇」のような文字列を指定する場合は、””(ダブルクォーテーション)で文字を囲みます。

=IF(C3>=80,"〇",

手順2.IF関数に値が真の場合を入力する
手順2.IF関数に値が真の場合を入力する

手順3.値が偽の場合に2つ目のIF関数を挿入する

80点以上でない場合の論理式を挿入するため、IF関数の3つ目の引数[値が偽の場合]に2つ目のIF関数を挿入します。

=IF(C3>=80,"〇",IF(

手順3.IF関数の中に2つ目のIF関数を挿入する
手順3.IF関数の中に2つ目のIF関数を挿入する

手順4.2つ目のIF関数の論理式を挿入する

80点以上でない場合、60点以上かどうかを判定するための論理式を挿入します。

=IF(C3>=80,"〇",IF(C3>=60,

手順4.2つ目のIF関数の論理式を挿入する
手順4.2つ目のIF関数の論理式を挿入する

手順5.2つ目のIF関数の真の値を入力する

60点以上であれば【△】を表示させるために、2つ目のIF関数の真の値を入力します。

=IF(C3>=80,"〇",IF(C3>=60,"△",

手順5.2つ目のIF関数の真の値を入力する
手順5.2つ目のIF関数の真の値を入力する

手順6.2つ目のIF関数の偽の値を入力する

60点以上でなければ【×】を表示させるために、2つ目のIF関数の偽の値を入力します。

入力したら、続いて2つ目のIF関数を閉じるための「)」と、1つ目のIF関数を閉じる「)」を入力してください。

=IF(C3>=80,"〇",IF(C3>=60,"△","×"))

手順6.2つ目のIF関数の偽の値を入力する
手順6.2つ目のIF関数の偽の値を入力する

手順7.IF関数の完成

「Enter」キーを押して関数を確定してください。

C3セルは65点以上なので、【△】が表示されます。

手順7-1.IF関数の完成
手順7-1.IF関数の完成

下のセルにもIF関数を挿入するため、セルの右下にカーソルを合わせて、カーソルのポインターが十字マークに変わった状態で下にドラッグしてください。(オートフィルの利用)

手順7-2.IF関数で点数の判定が完了
手順7-2.IF関数で点数の判定が完了

分岐点と論理式のイメージ図

この3つの複数条件に対応した場合のIF関数の構文は以下のようになっています。

IF関数が入れ子になっているので、数式を見てもどのような構図になっているか理解しづらくなっています。

IF関数を3つの複数条件で指定した場合の構図
IF関数を3つの複数条件で指定した場合の構図

IF関数を入れ子にした場合、条件の分岐と判定をフローチャートで表すと以下のようになります。

IF関数を3つの条件で指定(フローチャート図)
IF関数を3つの条件で指定(フローチャート図)

まず1つ目のIF関数の条件で「80点以上かどうか」を判定して、真の場合は「〇」、偽の場合は2つ目のIF関数の条件で判定します。

2つ目のIF関数の条件は「60点以上かどうか」を判定しています。真の場合は「△」と表示し、偽の場合は「×」と表示するように指定しています。

IF関数の複数条件の使い方(条件が4つ)

IF関数で【◎】【○】【△】【×】の4つの複数条件を指定する手順を紹介します。

IF関数の中にIF関数を使うネスト』を2回利用します。

100点であれば【◎】、80点以上であれば【○】、60点以上であれば【△】、それ以外は【×】が表示されるように関数を作成していきます。

IF関数を作成する手順

手順1~9に沿ってIF関数を作成してください。

手順1.1つ目の論理式を入力

IF関数を入力するセルを選択し、セルに「=IF(」と入力した後に論理式を入力します。まず100点かどうかを判定する論理式を入力します。

=IF(C3=100,

手順1.IF関数と論理式を入力する
手順1.IF関数と論理式を入力する

手順2.値が真の場合の値を入力する

続いて、論理式の条件に値が入っていれば、「◎」を表示するように引数を指定します。

=IF(C3=100,"◎",

手順2.IF関数の値が真の場合の値を入力する
手順2.IF関数の値が真の場合の値を入力する

手順3.値が偽の場合に2つ目のIF関数と論理式を入力する

100点でない場合の論理式を挿入するため、IF関数の3つ目の引数[値が偽の場合]に2つ目のIF関数を挿入します。

2つ目のIF関数では80点以上かどうかで分岐したいので、論理式は「C3>=80」となります。

=IF(C3=100,"◎",IF(C3>=80,

手順3.2つ目のIF関数と論理式を入力する
手順3.2つ目のIF関数と論理式を入力する

手順4.2つ目のIF関数の真の値を入力する

80点以上であれば【〇】を表示させるために、2つ目のIF関数の真の値を入力します。

=IF(C3=100,"◎",IF(C3>=80,"〇",

手順4.2つ目のIF関数の真の値を入力する
手順4.2つ目のIF関数の真の値を入力する

手順5.値が偽の場合に3つ目のIF関数を挿入する

80点以上でない場合の論理式を挿入するため、2つ目のIF関数の3つ目の引数[値が偽の場合]に3つ目のIF関数を挿入します。

3つ目のIF関数では60点以上かどうかで分岐したいので、論理式は「C3>=60」となります。

=IF(C3=100,"◎",IF(C3>=80,"〇",IF(C3>=60,

手順5.値が偽の場合に3つ目のIF関数を挿入する
手順5.値が偽の場合に3つ目のIF関数を挿入する

手順6.3つ目のIF関数の真の値を入力する

60点以上であれば【△】を表示させるために、3つ目のIF関数の真の値を入力します。

=IF(C3=100,"◎",IF(C3>=80,"〇",IF(C3>=60,"△",

手順6.3つ目のIF関数の真の値を入力する
手順6.3つ目のIF関数の真の値を入力する

手順7.3つ目のIF関数の偽の値を入力する

60点以上でなければ【×】を表示させるために、3つ目のIF関数の偽の値を入力します。

入力したら、続いて3つのIF関数を閉じるために、「)」を3つ入力してください。

=IF(C3=100,"◎",IF(C3>=80,"〇",IF(C3>=60,"△","×")))

手順7.3つ目のIF関数の偽の値を入力する
手順7.3つ目のIF関数の偽の値を入力する

手順8.IF関数を確定させる

「Enter」キーを押して関数を確定してください。C3セルは60点以上80点未満なので【△】と表示されます。

手順8.4つの複数条件を設定したIF関数を確定
手順8.4つの複数条件を設定したIF関数を確定

手順9.IF関数を確定させる

下のセルにもIF関数を挿入するため、セルの右下にカーソルを合わせて、カーソルのポインターが十字マークに変わった状態で下にドラッグしてください。(オートフィルの利用)

手順9.オートフィルでIF関数をコピペ
手順9.オートフィルでIF関数をコピペ

分岐点と論理式のイメージ図

この4つの複数条件に対応した場合のIF関数の構文は以下のようになっています。

IF関数に2つの入れ子が使用されているので、数式を見てもどのような構図になっているか理解しづらくなっています。

IF関数を4つの複数条件で指定した場合の構図
IF関数を4つの複数条件で指定した場合の構図

IF関数を入れ子にした場合、条件の分岐と判定をフローチャートで表すと以下のようになります。

IF関数を4つの複数条件で指定(フローチャート図)
IF関数を4つの複数条件で指定(フローチャート図)

まず1つ目のIF関数の条件で「100点かどうか」を判定して、真の場合は「◎」、偽の場合は2つ目のIF関数の条件で判定します。

次に2つ目のIF関数の条件で「80点以上かどうか」を判定して、真の場合は「〇」、偽の場合は3つ目のIF関数の条件で判定します。

最後に3つ目のIF関数の条件は「60点以上かどうか」を判定しています。真の場合は「△」と表示し、偽の場合は「×」と表示するように指定しています。

IF関数でエラーが発生する場合

IF関数で想定通りの結果が表示されない場合は、関数の作成を失敗している可能性があります。

陥りやすい誤りを3つ紹介しますので、上手くいかない場合の参考にしてみて下さい。

ダブルクォーテーション「”」の入力漏れ

IF関数の「値が真の場合」「値が偽の場合」の引数に文字列を指定する場合は、ダブルクォーテーション「”」で囲う必要があります。

良い例:”〇”

悪い例:〇

もしダブルクォーテーション「”」を忘れてIF関数を挿入しようとすると・・・

IF関数をダブルクォーテーションを設定せずに利用
IF関数をダブルクォーテーションを設定せずに利用

エラー値「#NAME?」が発生してしまいます。

このエラー値「#NAME?」は、関数名が間違っている時や文字列の名前の入力を間違った時にも発生します。

IF関数でエラーが発生する事例
IF関数でエラーが発生する事例

「)」(括弧)の入力漏れ

IF関数の中に複数のIF関数を挿入するネスト(入れ子)を利用すると、「)」(括弧)をいくつ入力したらよいか分かりづらくなります。

IF関数で4つの複数条件を設定しようとする場合、IF関数を3つ利用するので関数の末尾に入力する「)」(括弧)は3つ必要です。

では、この「)」を1つや2つでIF関数を確定しようとした場合、どうなるでしょうか。

下の表のように、「)」が3つ必要なのに対して、1つでIF関数を確定しようとすると・・・

IF関数の括弧を忘れた場合
IF関数の括弧を忘れた場合

「数式に入力エラーが見つかりました。これを次のように修正しようとしています。この修正に同意しますか?」というポップアップ画面が表示され、不足している「)」を3つにする修正の同意を求められます。

IF関数の入力エラーの自動修正が案内される
IF関数の入力エラーの自動修正が案内される

この画面で「はい」を選択すると、自動でIF関数が修正されて関数を確定することが出来ます。

IF関数が自動で括弧忘れを修正
IF関数が自動で括弧忘れを修正

カンマ「,」の区切り漏れ

IF関数を複数条件で利用すると、引数と引数を区切るカンマ「,」を数多く設定する必要があります。

このカンマ「,」を設定し忘れてIF関数を確定するとどうなるでしょうか。

以下のように、IF関数の論理式と真の値の場合を区切るカンマ「,」を入力し忘れた状態で関数を確定しようとします。そうすると・・・

IF関数のカンマの入力漏れ
IF関数のカンマの入力漏れ

この数式には問題があります」と表示され、関数自体を確定させることが出来ず、関数の修正を求められます。

「この数式には問題があります」と表示
「この数式には問題があります」と表示

IFS関数(イフス)の使い方

IF関数で複数条件で利用しようとすると、IF関数の中にIF関数を入力する入れ子(ネスト)を使うので、数式を見ても関数の構図が読み取りづらくなります。

こんなIF関数の複数条件が多くなる場合は、IFS関数(読み方:イフス、イフズ)を使うと便利です。

IF関数に複数の「S」がついた関数名のとおり、複数の条件で表示方法を変更するための関数です。

このIFS関数はIF関数より引数の設定が簡単に行えるので、実戦に取り入れることをお薦めします。

ただし、この数年で導入された新関数のため、Excel2019や2021とMicrosofte365は確実に利用出来ますが、一部のExcel2016やそれ以前のバージョンでは使うことが出来ません。

IFS関数の構文と引数

IFS関数の構文と引数は以下のとおりです。

=IFS(論理式1, 真の場合1, 論理式2, 真の場合2,論理式3, 真の場合3, ..., )

IFS関数は、1つまたは複数の条件が満たされているかどうかを判定し、最初に条件を満たす場合の値を返します

IFS関数(イフス)を使う手順

IFS関数で【◎】【○】【△】【×】の4つの複数条件を指定する手順を紹介します。

100点であれば【◎】、80点以上であれば【○】、60点以上であれば【△】、60点未満は【×】が表示されるように関数を作成していきます。

手順1.IFS関数を挿入

【◎】【○】【△】【×】を表示したいセルに、IFS関数を挿入します。

=IFS(

IFS関数を使う手順①(関数を挿入)
IFS関数を使う手順①(関数を挿入)

手順2.1つ目の論理式と真の値を設定

点数が100点であれば【◎】と表示させるために、1つ目の論理式と真の値を設定します。

=IFS(C3=100,"◎",

IFS関数を使う手順➁(1つ目の論理式と真の値を指定)
IFS関数を使う手順➁(1つ目の論理式と真の値を指定)

手順3.2つ目の論理式と真の値を設定

点数が80点以上であれば【〇】と表示させるために、2つ目の論理式と真の値を設定します。

=IFS(C3=100,"◎",C3>=80,"〇",

IFS関数を使う手順③(2つ目の論理式と真の値を指定)
IFS関数を使う手順③(2つ目の論理式と真の値を指定)

手順4.3つ目の論理式と真の値を設定

点数が60点以上であれば【△】と表示させるために、3つ目の論理式と真の値を設定します。

=IFS(C3=100,"◎",C3>=80,"〇",C3>=60,"△",

IFS関数を使う手順④(3つ目の論理式と真の値を指定)
IFS関数を使う手順④(3つ目の論理式と真の値を指定)

手順5.4つ目の論理式と真の値を設定

点数が60点未満であれば【×】と表示させるために、4つ目の論理式と真の値を設定します。

=IFS(C3=100,"◎",C3>=80,"〇",C3>=60,"△",C3<60,"×"

IFS関数を使う手順⑤(4つ目の論理式と真の値を指定)
IFS関数を使う手順⑤(4つ目の論理式と真の値を指定)

手順6.IFS関数を確定させる

「Enter」キーを押して関数を確定してください。C3セルは65点以上なので、【△】が表示されます。

IFS関数を使う手順⑤(4つ目の論理式と真の値を指定)
IFS関数を使う手順⑤(4つ目の論理式と真の値を指定)

手順7.IFS関数をコピペする

下のセルにもIFS関数を挿入するため、セルの右下にカーソルを合わせて、カーソルのポインターが十字マークに変わった状態で下にドラッグしてください。(オートフィルの利用)

IFS関数を使う手順⑦(コピペ)
IFS関数を使う手順⑦(コピペ)

IFS関数とIF関数の違い

IFS関数とIF関数では構文の作り方が異なります。

IF関数は下の構図のとおり、IF関数の中にIF関数を挿入し、最後のIF関数の論理式に当てはまらない条件のものは「偽の値」の「×」としてすべて表示させることが出来ます。

IF関数の構文の構図
IF関数の構文の構図

一方、IFS関数には「偽の値」という概念がありません

下のように、「論理式と真の値」と1セットとして条件を設定し、必要な条件の数をセットします。

IFS関数の構文の構図
IFS関数の構文の構図

そのため、IFS関数がどの条件も満たさない場合はエラー値「#N/A」が表示されます。

IFS関数の論理式を追加してエラーが発生しないようにするためには条件を追加するか、IFERROR関数を用いてエラー値を別の値で表示させる必要があります。

エラー値「#N/A」を別の値に変換する方法は以下の記事を参考にしてください。

まとめ

IF関数の中にIF関数を挿入すると複数条件に対応することが出来ることを紹介しました。また、Excelのバージョンに条件がありますが、IFS関数も複数条件に簡単に対応できる便利な関数です。ぜひ実務の様々な場面で役立ててください。