条件判定を行うIF関数
IF関数は条件判定を行う関数です。またEXCEL2007以降はエラー処理機能が付いた
IFERROR関数が用意されています。
書式
もし~ =IF(条件式, 真の時の値, 偽の時の値)
IF関数の使用例
60点未満は不合格とする場合。
書式 =IF(A1<60, "不合格", "合格")
結果 合格
書式 =IF(A2<60, "不合格", "不合格")
結果 不合格
条件式に使う記号(比較演算子)
数式 | 説明 |
A=B |
AとBが等しい |
A>B |
AがBよりも大きい |
A<B |
AがBよりも小さい |
A>=B |
AがB以上 |
A<=B |
AがB以下 |
A<>B |
AとBが等しくない |
AND関数とOR関数
AND関数とOR関数はIF文とともに良く用いられます。
例えば40点以上60点未満といった場合はAND関数、黄色または緑色といった場合はOR関数を用います。
かつ =AND(条件式1, 条件式2, 条件式3...)
条件式1~ の
全ての条件が揃えば TRUE をそれ以外は FALSE を返します。
または =OR(条件式1, 条件式2, 条件式3...)
条件式1~ のどれか
1つでも条件が揃えば TRUE をそれ以外は FALSE を返します。
IF関数とAND関数の使用例
前期か後期のテスト
どちらも60点以上の場合は合格とする場合。
| A | B | C |
1 | 前期 | 後期 | |
2 | 90 | 50 | 不合格 |
3 | 80 | 60 | 合格 |
書式 =IF( AND(A2>=60, B2>=60) , "合格", "不合格")
結果 不合格
書式 =IF( AND(A3>=60, B3>=60) , "合格", "不合格")
結果 合格
IF関数とOR関数の使用例
前期か後期のテスト
どちらかが60点以上の場合は合格とする場合。
| A | B | C |
1 | 前期 | 後期 | |
2 | 60 | 30 | 合格 |
3 | 50 | 40 | 不合格 |
書式 =IF( OR(A2>=60, B2>=60) , "合格", "不合格")
結果 合格
書式 =IF( OR(A3>=60, B3>=60) , "合格", "不合格")
結果 不合格
AND関数とOR関数の挙動
OR関数
OR関数は「与えられた条件式の結果、値」が1つでもTRUEの場合に結果はTRUEになります。
| A | B |
1 | 数式 | 結果 |
2 | =OR(TRUE, TRUE, TRUE, TRUE) | TRUE |
3 | =OR(TRUE, TRUE, TRUE, FALSE) | TRUE |
AND関数
AND関数は「与えられた条件式の結果、値」が全てTRUEの場合のみ結果はTRUEになります。
| A | B |
1 | 数式 | 結果 |
2 | =AND(TRUE, TRUE, TRUE, TRUE) | TRUE |
3 | =AND(TRUE, TRUE, TRUE, FALSE) | FALSE |
TRUEは0以外、FALSEは0
実は、TRUEとは0以外の値、FALSEとは0の事ですので、 TRUE, FALSEの代わりに1, 0を与えた場合も以下のようになります。
| A | B |
1 | 数式 | 結果 |
2 | =OR(1, 1, 1, 0) | TRUE |
3 | =AND(1, 1, 1, 0) | FALSE |
IF文でエラー処理
空白や0で割り算をしたり、文字列を掛け算したりするとエラーとなります。
| A | B | C | C |
1 | データ1 | データ2 | 数式 | 結果 |
2 | 300 | 15 | =A2/B2 | 20 |
3 | 400 | 10 | =A3/B3 | 40 |
4 | 200 | | =A4/B4 | #DIV/0! |
IF文でエラー時に 空白を出力するようにすれば、
#DIV/0!や
#VALUE!といったエラーの出力回避することができます。
また
エラーの種類はこちらを参考にしてください。
| A | B | C | C |
1 | データ1 | データ2 | 数式 | 結果 |
2 | 300 | 15 | =IF( ISERROR(A2/B2), "", (A2/B2) ) | 20 |
3 | 400 | 10 | =IF( ISERROR(A3/B3), "", (A3/B3) ) | 40 |
4 | 200 | | =IF( ISERROR(A4/B4), "", (A4/B4) ) | |
EXCEL2007以降では
IFERROR関数が用意されており、上記と同等の式も簡単に入力することができるようになりました。
| A | B | C | C |
1 | データ1 | データ2 | 数式 | 結果 |
2 | 300 | 15 | =IFERROR( A2/B2, "" ) | 20 |
3 | 400 | 10 | =IFERROR( A3/B3, "" ) | 40 |
4 | 200 | | =IFERROR( A4/B4, "" ) | |
IF文で条件分岐 (複数のIF)
10個以上購入で5%割引き、20個以上購入で10%割引きといった条件分岐を行う場合はIF文をネスト(IF分の中にIF分を記述)します。
| A | B | C | C |
1 | 個数 | 単価 | 数式 | 価格 |
2 | 5 | 100 | =IF( H16<10, A1*B1, IF( A1<20, A1*B1*0.95, A1*B1*0.9)) | 500 |
3 | 10 | 100 | =IF( H16<10, A2*B2, IF( A2<20, A2<*B2*0.95, A2<*B2*0.9)) | 900 |
4 | 20 | 100 | =IF( H16<10, A3*B3, IF( A3<20, A3*B3*0.95, A3*B3*0.9)) | 1800 |