エクセルマニア

EXCEL関数 IF関数 AND関数 OR関数

TOP > EXCEL関数辞書 > IF関数とAND・OR関数で条件判定
このエントリーをはてなブックマークに追加

条件判定を行うIF関数


IF関数は条件判定を行う関数です。またEXCEL2007以降はエラー処理機能が付いたIFERROR関数が用意されています。

書式

もし~ =IF(条件式, 真の時の値, 偽の時の値)

IF関数の使用例

60点未満は不合格とする場合。
A
170
210
書式 =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点以上の場合は合格とする場合。
ABC
1前期後期 
29050不合格
38060合格

書式 =IF( AND(A2>=60, B2>=60) , "合格", "不合格")
結果 不合格
書式 =IF( AND(A3>=60, B3>=60) , "合格", "不合格")
結果 合格

IF関数とOR関数の使用例

前期か後期のテストどちらかが60点以上の場合は合格とする場合。
ABC
1前期後期 
26030合格
35040不合格

書式 =IF( OR(A2>=60, B2>=60) , "合格", "不合格")
結果 合格
書式 =IF( OR(A3>=60, B3>=60) , "合格", "不合格")
結果 不合格

AND関数とOR関数の挙動


OR関数

OR関数は「与えられた条件式の結果、値」が1つでもTRUEの場合に結果はTRUEになります。
AB
1数式結果
2=OR(TRUE, TRUE, TRUE, TRUE)TRUE
3=OR(TRUE, TRUE, TRUE, FALSE)TRUE

AND関数

AND関数は「与えられた条件式の結果、値」が全てTRUEの場合のみ結果はTRUEになります。
AB
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を与えた場合も以下のようになります。
AB
1数式結果
2=OR(1, 1, 1, 0)TRUE
3=AND(1, 1, 1, 0)FALSE

IF文でエラー処理


空白や0で割り算をしたり、文字列を掛け算したりするとエラーとなります。
ABCC
1データ1データ2数式結果
230015=A2/B220
340010=A3/B340
4200 =A4/B4#DIV/0!
IF文でエラー時に 空白を出力するようにすれば、#DIV/0!#VALUE!といったエラーの出力回避することができます。 またエラーの種類はこちらを参考にしてください。
ABCC
1データ1データ2数式結果
230015=IF( ISERROR(A2/B2), "", (A2/B2) )20
340010=IF( ISERROR(A3/B3), "", (A3/B3) )40
4200 =IF( ISERROR(A4/B4), "", (A4/B4) ) 
EXCEL2007以降ではIFERROR関数が用意されており、上記と同等の式も簡単に入力することができるようになりました。
ABCC
1データ1データ2数式結果
230015=IFERROR( A2/B2, "" )20
340010=IFERROR( A3/B3, "" )40
4200 =IFERROR( A4/B4, "" ) 

IF文で条件分岐 (複数のIF)


10個以上購入で5%割引き、20個以上購入で10%割引きといった条件分岐を行う場合はIF文をネスト(IF分の中にIF分を記述)します。
ABCC
1個数単価数式価格
25100=IF( H16<10, A1*B1, IF( A1<20, A1*B1*0.95, A1*B1*0.9))500
310100=IF( H16<10, A2*B2, IF( A2<20, A2<*B2*0.95, A2<*B2*0.9))900
420100=IF( H16<10, A3*B3, IF( A3<20, A3*B3*0.95, A3*B3*0.9))1800