今回は条件によって処理を分岐することができる【IF】関数を紹介します。論理式に条件を指定して、条件を満たした場合は処理1、満たさなかった場合は処理2を行います。関連する関数の【IFERROR】関数も一緒に紹介します。
エクセル関数-IF・IFERROR
目次
IFについて
IFの基本形
まずは簡単な【IF】式を作って説明します。図のようにセルA1に5が入力されていて、セルB1に【=IF(A1=5,"〇","×")】という式が入っていて、返り値は〇になっています。セルA1の値を10に変えると返り値は×になります。
ポイント
図をもとに数式の解説をします。
①論理式・・・ここに入れた式が正しいか正しくないかを判定します。正しい時は②を実行、正しくないときは③を実行します。
②真の場合・・・①が正しい時に返す値、もしくは数式を入力する。
③偽の場合・・・①が正しくない時に返す値、もしくは数式を入力する。
図の数式を翻訳すると、『セルA1の値が5であれば、〇を返す、そうでなければ×を返す』という内容になります。
論理式の条件指定方法
論理式で条件を指定する方法を、値の場合とセル参照の場合に分け、例で説明します。
条件指定方法(値の場合)
演算子 | 意味 | 使用例 | 意味 |
= | 等しい | =IF(A1=70,"〇,"×")
※検査値70は文字列にも |
セルA1が 70と等しい時は〇を返し そうではない時は×を返す |
<> | 等しくない | =IF(A1<>70,"〇,"×")
※検査値70は文字列にも |
セルA1が 70と等しくない時は〇を返し そうではない時は×を返す |
> | ~より大きい | =IF(A1>70,"〇,"×") | セルA1が 70より大きい時は〇を返し そうではない時は×を返す |
>= | ~以上 | =IF(A1>=70,"〇,"×") | セルA1が 70以上の時は〇を返し そうではない時は×を返す |
< | ~より小さい | =IF(A1<70,"〇,"×") | セルA1が 70より小さい時は〇を返し そうではない時は×を返す |
<= | ~以下 | =IF(A1<=70,"〇,"×") | セルA1が 70以下の時は〇を返し そうではない時は×を返す |
条件指定方法(セル参照の場合)
演算子 | 意味 | 使用例 | 意味 |
= | 等しい | =IF(A1=B1,"〇,"×") | セルA1が セルB1と等しい時は〇を返し そうではない時は×を返す |
<> | 等しくない | =IF(A1<>B1,"〇,"×") | セルA1が セルB1と等しくない時は〇を返し そうではない時は×を返す |
> | ~より大きい | =IF(A1>B1,"〇,"×") | セルA1が セルB1より大きい時は〇を返し そうではない時は×を返す |
>= | ~以上 | =IF(A1>=B1,"〇,"×") | セルA1が セルB1以上の時は〇を返し そうではない時は×を返す |
< | ~より小さい | =IF(A1<B1,"〇,"×") | セルA1が セルB1より小さい時は〇を返し そうではない時は×を返す |
<= | ~以下 | =IF(A1<=B1,"〇,"×") | セルA1が セルB1以下の時は〇を返し そうではない時は×を返す |
IFの複数ネスト(入れ子)
エクセルの【IF関数】は最大で64個までネスト(入れ子)にして複数の論理式を入れることができます。ですが、あまり多くネストすると数式が複雑になりすぎ、修正する時に大変なのでおすすめはしません。Excel2019からは新関数として【IFS関数】と【SWITCH関数】が登場し、複数条件の指定方法が簡素化されています。Microsoft 365やExcel2019をご使用の方はぜひそちらをご使用ください。それ以前のバージョンをご使用の方用にIFのネストを説明します。
図のような学力テストの結果があり、評価基準をもとに平均点によって評価のランク付けをします。まず練習がてらセルI4に【=IF(H4>=80,"S","")】という数式を入れます。
論理式:H4>=80・・・平均点が80点以上
真の場合:"S"・・・平均点が80点以上の時はSが返ってくる
偽の場合:""・・・平均点が80点以上ではない時は""(空白)が返ってくる
セルH4は80点以上ではないので""(空白)が返ってきます。
これでは数式が正しく判定されているかわかりにくいので、コピーして下方向へ貼り付けする。セルH6が80点以上なのでセルI6がSになります。思い通りの値が返ってきたので、早速ネストしていきましょう。完成の数式を見ながら解説します。
ポイント
これが完成した数式です。全部で4つのIFがあり、赤をA、青をB、黒をC、紫をDとします。IF関数は必ず式の左から検査していき、値が確定した時点でその値を返して処理が終了します。文章で説明すると、
①第1検査 セルH4が80以上の時は、Sを返し、そうでない時はBの式へ移るので②へ
②第2検査 セルH4が70以上の時は、Aを返し、そうでない時はCの式へ移るので③へ
③第3検査 セルH4が60以上の時は、Bを返し、そうでない時はDの式へ移るので④へ
④第4検査 セルH4が50以上の時は、Cを返し、そうでない時はDを返す
という流れになります。IF関数で複数ネストする場合は検査する順番も重要で、例えば上記の①と②が逆になっていたら正しい返り値が返ってきません。まずは日本語で上記のような文章を作ってから数式に翻訳していく方が上手くいきます。
数式が1つ完成したら、コピーして下まで貼り付けすれば下の図のように評価が算出されます。
IFERRORについて
数式を作っているとエラー値が返ってくることがあります。本当に数式に間違いがあってエラーになっているのであれば修正しなければなりませんが、そうではないが参照するセル範囲によってはどうしてもエラーになってしまう場合があります。エラーのままでは支障がある場合に、指定した値を返してくれるのが【IFERROR】になります。
図のように掛算の式があり、返り値がエラーになっています。数式を確認すると、【田中×5】という内容になっており、計算ができませんというエラー値#VALUE!が出ています。ここでは【IFERROR】を使い、エラーの時は空白にするようにしました。
ポイント
①エラーの検査をする数式
②エラー発生時に返す値(何でもOK)
エラーが発生しない時は①の計算結果が返ってきます。ここでは②に空白("")を指定しましたが、0でもいいですし、文字列でも指定はできます。
まとめ
IFとIFERRORについて紹介しました。2つともよく使う関数ですが、特にIFは数式の幅を広げてくれる非常に優れた関数です。条件に応じて処理を分岐させることができますので、自分の思い通りに使いこなすことができれば強力な武器になります。
おすすめ!!
新着記事