Excel(エクセル)のIF関数は設定した論理式に対して【真】か【偽】かという判定で表示させる結果を変えることが出来る関数です。
例えば、IF関数は以下のように2つの条件(80以上か、それ以外か)で利用し、【○】や【×】を表示させることが出来ます。
=IF(C4>=80,"〇","×")
では、IF関数で【◎】と【○】と【×】を表示させる場合は、どのように利用すればよいでしょうか。
この記事では、IF関数で3つの条件や4つの条件などの複数条件に対応して、表示方法を分岐させる方法を解説します。
また、最後の見出しでは、IFS関数(イフス)というIF関数を複数条件で設定することが出来る新関数の使い方も紹介します。
IF関数の構文と引数
IF関数の構文(書式)と引数を紹介します。
十分理解されている方は次の見出しまで読み飛ばしてくださいね。
IF関数の構文と引数は以下のようになっています。
=IF(論理式,[値が真の場合],[値が偽の場合])
IF関数の仕組みをフロー図で表すと以下のようになります。
ひし形が論理式の分岐点となっていて、論理式の条件に合っていれば(値が真の場合)【結果1】を表示し、合っていなければ(値が偽の場合)【結果2】を表示します。
IF関数の使い方(条件が2つ)
まずはIF関数の基本的な使い方を紹介します。
下のテスト結果表の点数が80点以上か80点未満かによって【○】と【×】を表示させる方法を紹介します。
まず、IF関数を入力するセルを選択し、セルに「=IF(」と入力します。
=IF(
続いて論理式を入力します。論理式を入力の後は、カンマ「,」で区切ります。
=IF(C3>=80,
論理式の条件に値が入っていれば、「〇」を表示するように引数を指定します。「〇」のような文字列を指定する場合は、””(ダブルクォーテーション)で文字を囲みます。
=IF(G3>=80,"〇",
論理式の条件に値が入っていない場合、「×」を表示するように引数を指定します。「×」のような文字列を指定する場合は、””(ダブルクォーテーション)で文字を囲みます。
=IF(C3>=80,"〇","×"
IF関数を挿入したD3セルに「×」と表示されます。
下のセルにもIF関数を挿入するため、セルの右下にカーソルを合わせて、カーソルのポインターが十字マークに変わった状態で下にドラッグしてください。(オートフィルの利用)
そうすると、80点以上か80点未満かによって【○】と【×】を表示させることが出来ます。
IF関数の複数条件には入れ子(ネスト)を使う!
エクセルで関数の中に関数を使うことをネスト(入れ子)と言います。
IF関数で【○】【△】【×】といったような3つ以上の複数条件を指定するためには、IF関数の中にIF関数をネスト(入れ子)します。
下の赤字の部分がネストの部分です。
=IF(C4>=80,"〇",IF(C4>=60,"△","×"))
このようなIF関数の使い方の手順を下の見出しで紹介していきます。
IF関数の複数条件の使い方(条件が3つ)
IF関数で【○】【△】【×】の3つの複数条件を指定する手順を紹介します。
上の見出しで紹介したとおり、IF関数の中にIF関数を使う『ネスト』を利用します。
下の手順1~手順7に沿って作業すれば、誰でも簡単にIF関数の複数条件を利用するが出来ます。
今回は上の表を使って、80点以上であれば【○】、60点以上であれば【△】、それ以外は【×】が表示されるように関数を作成していきます。
手順1.IF関数と論理式を入力する
IF関数を入力するセルを選択し、セルに「=IF(」と入力した後に論理式を入力します。まず80点以上かどうかを判定する論理式を入力します。
=IF(C3>=80,
手順2.値が真の場合を入力する
続いて、論理式の条件に値が入っていれば、「〇」を表示するように引数を指定します。「〇」のような文字列を指定する場合は、””(ダブルクォーテーション)で文字を囲みます。
=IF(C3>=80,"〇",
手順3.値が偽の場合に2つ目のIF関数を挿入する
80点以上でない場合の論理式を挿入するため、IF関数の3つ目の引数[値が偽の場合]に2つ目のIF関数を挿入します。
=IF(C3>=80,"〇",IF(
手順4.2つ目のIF関数の論理式を挿入する
80点以上でない場合、60点以上かどうかを判定するための論理式を挿入します。
=IF(C3>=80,"〇",IF(C3>=60,
手順5.2つ目のIF関数の真の値を入力する
60点以上であれば【△】を表示させるために、2つ目のIF関数の真の値を入力します。
=IF(C3>=80,"〇",IF(C3>=60,"△",
手順6.2つ目のIF関数の偽の値を入力する
60点以上でなければ【×】を表示させるために、2つ目のIF関数の偽の値を入力します。
入力したら、続いて2つ目のIF関数を閉じるための「)」と、1つ目のIF関数を閉じる「)」を入力してください。
=IF(C3>=80,"〇",IF(C3>=60,"△","×"))
手順7.IF関数の完成
「Enter」キーを押して関数を確定してください。
C3セルは65点以上なので、【△】が表示されます。
下のセルにもIF関数を挿入するため、セルの右下にカーソルを合わせて、カーソルのポインターが十字マークに変わった状態で下にドラッグしてください。(オートフィルの利用)
「IF関数で3つの条件」のイメージ図(分岐点と論理式)
この3つの複数条件に対応した場合のIF関数の構文は以下のようになっています。
IF関数が入れ子になっているので、数式を見てもどのような構図になっているか理解しづらくなっています。
IF関数を入れ子にした場合、条件の分岐と判定をフローチャートで表すと以下のようになります。
まず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,
手順2.値が真の場合の値を入力する
続いて、論理式の条件に値が入っていれば、「◎」を表示するように引数を指定します。
=IF(C3=100,"◎",
手順3.値が偽の場合に2つ目のIF関数と論理式を入力する
100点でない場合の論理式を挿入するため、IF関数の3つ目の引数[値が偽の場合]に2つ目のIF関数を挿入します。
2つ目のIF関数では80点以上かどうかで分岐したいので、論理式は「C3>=80」となります。
=IF(C3=100,"◎",IF(C3>=80,
手順4.2つ目のIF関数の真の値を入力する
80点以上であれば【〇】を表示させるために、2つ目のIF関数の真の値を入力します。
=IF(C3=100,"◎",IF(C3>=80,"〇",
手順5.値が偽の場合に3つ目のIF関数を挿入する
80点以上でない場合の論理式を挿入するため、2つ目のIF関数の3つ目の引数[値が偽の場合]に3つ目のIF関数を挿入します。
3つ目のIF関数では60点以上かどうかで分岐したいので、論理式は「C3>=60」となります。
=IF(C3=100,"◎",IF(C3>=80,"〇",IF(C3>=60,
手順6.3つ目のIF関数の真の値を入力する
60点以上であれば【△】を表示させるために、3つ目のIF関数の真の値を入力します。
=IF(C3=100,"◎",IF(C3>=80,"〇",IF(C3>=60,"△",
手順7.3つ目のIF関数の偽の値を入力する
60点以上でなければ【×】を表示させるために、3つ目のIF関数の偽の値を入力します。
入力したら、続いて3つのIF関数を閉じるために、「)」を3つ入力してください。
=IF(C3=100,"◎",IF(C3>=80,"〇",IF(C3>=60,"△","×")))
手順8.IF関数を確定させる
「Enter」キーを押して関数を確定してください。C3セルは60点以上80点未満なので【△】と表示されます。
手順9.IF関数を確定させる
下のセルにもIF関数を挿入するため、セルの右下にカーソルを合わせて、カーソルのポインターが十字マークに変わった状態で下にドラッグしてください。(オートフィルの利用)
「IF関数で4つの条件」のイメージ図(分岐点と論理式)
この4つの複数条件に対応した場合のIF関数の構文は以下のようになっています。
IF関数に2つの入れ子が使用されているので、数式を見てもどのような構図になっているか理解しづらくなっています。
IF関数を入れ子にした場合、条件の分岐と判定をフローチャートで表すと以下のようになります。
まず1つ目のIF関数の条件で「100点かどうか」を判定して、真の場合は「◎」、偽の場合は2つ目のIF関数の条件で判定します。
次に2つ目のIF関数の条件で「80点以上かどうか」を判定して、真の場合は「〇」、偽の場合は3つ目のIF関数の条件で判定します。
最後に3つ目のIF関数の条件は「60点以上かどうか」を判定しています。真の場合は「△」と表示し、偽の場合は「×」と表示するように指定しています。
IF関数でエラーが発生する場合
IF関数で想定通りの結果が表示されない場合は、関数の作成を失敗している可能性があります。
陥りやすい誤りを3つ紹介しますので、上手くいかない場合の参考にしてみて下さい。
ダブルクォーテーション「”」の入力漏れ
IF関数の「値が真の場合」「値が偽の場合」の引数に文字列を指定する場合は、ダブルクォーテーション「”」で囲う必要があります。
良い例:”〇”
悪い例:〇
もしダブルクォーテーション「”」を忘れてIF関数を挿入しようとすると・・・
エラー値「#NAME?」が発生してしまいます。
このエラー値「#NAME?」は、関数名が間違っている時や文字列の名前の入力を間違った時にも発生します。
「)」(括弧)の入力漏れ
IF関数の中に複数のIF関数を挿入するネスト(入れ子)を利用すると、「)」(括弧)をいくつ入力したらよいか分かりづらくなります。
IF関数で4つの複数条件を設定しようとする場合、IF関数を3つ利用するので関数の末尾に入力する「)」(括弧)は3つ必要です。
では、この「)」を1つや2つでIF関数を確定しようとした場合、どうなるでしょうか。
下の表のように、「)」が3つ必要なのに対して、1つでIF関数を確定しようとすると・・・
「数式に入力エラーが見つかりました。これを次のように修正しようとしています。この修正に同意しますか?」というポップアップ画面が表示され、不足している「)」を3つにする修正の同意を求められます。
この画面で「はい」を選択すると、自動で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(
手順2.1つ目の論理式と真の値を設定
点数が100点であれば【◎】と表示させるために、1つ目の論理式と真の値を設定します。
=IFS(C3=100,"◎",
手順3.2つ目の論理式と真の値を設定
点数が80点以上であれば【〇】と表示させるために、2つ目の論理式と真の値を設定します。
=IFS(C3=100,"◎",C3>=80,"〇",
手順4.3つ目の論理式と真の値を設定
点数が60点以上であれば【△】と表示させるために、3つ目の論理式と真の値を設定します。
=IFS(C3=100,"◎",C3>=80,"〇",C3>=60,"△",
手順5.4つ目の論理式と真の値を設定
点数が60点未満であれば【×】と表示させるために、4つ目の論理式と真の値を設定します。
=IFS(C3=100,"◎",C3>=80,"〇",C3>=60,"△",C3<60,"×"
手順6.IFS関数を確定させる
「Enter」キーを押して関数を確定してください。C3セルは65点以上なので、【△】が表示されます。
手順7.IFS関数をコピペする
下のセルにもIFS関数を挿入するため、セルの右下にカーソルを合わせて、カーソルのポインターが十字マークに変わった状態で下にドラッグしてください。(オートフィルの利用)
IFS関数とIF関数の違い
IFS関数とIF関数では構文の作り方が異なります。
IF関数は下の構図のとおり、IF関数の中にIF関数を挿入し、最後のIF関数の論理式に当てはまらない条件のものは「偽の値」の「×」としてすべて表示させることが出来ます。
一方、IFS関数には「偽の値」という概念がありません。
下のように、「論理式と真の値」と1セットとして条件を設定し、必要な条件の数をセットします。
そのため、IFS関数がどの条件も満たさない場合はエラー値「#N/A」が表示されます。
IFS関数の論理式を追加してエラーが発生しないようにするためには条件を追加するか、IFERROR関数を用いてエラー値を別の値で表示させる必要があります。
エラー値「#N/A」を別の値に変換する方法は以下の記事を参考にしてください。