AND関数・OR関数の使い方|IFと組み合わせて条件を2つ以上に
※写真はイメージです
書き方はこれだけ
=IF(AND(条件1, 条件2), "合格", "")ANDは「ぜんぶ満たしたら」、ORは「どれか1つでも満たしたら」TRUEを返す関数です。単体ではTRUE/FALSEしか出ないので、ほぼ必ずIFの中に入れて使います。「筆記も実技も80点以上なら合格」はAND、「土曜か日曜なら休日」はORです。
この図の表をExcelファイルでダウンロード(問題と答えのシートつき)
ANDとORのちがい
| 関数 | TRUEになるとき | 例 |
|---|---|---|
| AND | ぜんぶの条件を満たす | =AND(B2>=80,C2>=80) 両方80点以上 |
| OR | どれか1つでも満たす | =OR(B2>=80,C2>=80) どちらか80点以上 |
| NOT | 条件を満たさない | =NOT(B2="済") 「済」ではない |
よく使う例
| やりたいこと | 式 |
|---|---|
| 両方80点以上なら合格 | =IF(AND(B2>=80,C2>=80),"合格","") |
| 土曜か日曜なら「休」 | =IF(OR(WEEKDAY(A2)=1,WEEKDAY(A2)=7),"休","") |
| 10日から20日のあいだ | =AND(DAY(A2)>=10,DAY(A2)<=20) |
| 期限切れで、まだ未完了 | =IF(AND(B2<TODAY(),C2<>"済"),"遅れ","") |
| 東京か神奈川なら関東料金 | =IF(OR(A2="東京",A2="神奈川"),800,1200) |
ANDとORを両方使うこともできます。=IF(AND(B2>=60,OR(C2="A",C2="B")),"対象","") のように、内側から順に読めば大丈夫です。ただ、3つ以上入れ子にすると自分でも読めなくなるので、そうなったら列を分けて1つずつ判定するほうがいいと思います。
うまくいかないとき
1「80点以上100点以下」が判定できない
=IF(80<=B2<=100,…) のようには書けません。
直し方AND(B2>=80,B2<=100) と2つに分けます。
2文字の条件がいつもFALSEになる
全角と半角、前後の空白のちがいで、別の文字になっています。
直し方入力をプルダウンにするか、TRIMで空白を消してから比べます。
3TRUE・FALSEがそのまま表示される
ANDやORだけで使っています。
直し方IFの1つ目に入れて、表示したい文字を決めます。
サンプルファイルで試す
黄色のセルに式を入れて、「答え」のシートと比べてください。
よくある質問
AND関数とOR関数のちがいは?
ANDはすべての条件を満たすとき、ORはどれか1つでも満たすときにTRUEになります。
IFとANDを組み合わせるには?
=IF(AND(B2>=80,C2>=80),"合格","") のように、IFの条件の部分にANDを入れます。
「80以上100以下」はどう書く?
=AND(B2>=80,B2<=100) のように、2つの条件に分けます。
一緒に覚えたい関数・操作
このページについて
操作の説明は Microsoft 365 の日本語版Excel(Windows)に合わせています。図はこのサイトで作ったもので、表の会社名・商品名・人名は架空です。運営者情報