AND関数・OR関数の使い方|複数の条件をまとめて判定する方法

「筆記も実技も70点以上なら合格」「どちらか一方でも70点以上なら合格」のように、条件を2つ以上組み合わせて判定したいことがあります。結論から言うと、AND関数は「すべての条件を満たすか」、OR関数は「どれか1つでも満たすか」を判定し、結果をTRUE(満たす)かFALSE(満たさない)で返す関数です。単独で使うより、IF関数と組み合わせて使うのが基本です。

目次

AND関数・OR関数の基本構文

  • =AND(条件1,条件2,…) … すべての条件がTRUEのときだけTRUE。1つでもFALSEがあればFALSE
  • =OR(条件1,条件2,…) … どれか1つでもTRUEならTRUE。すべてFALSEのときだけFALSE

条件は最大255個まで指定できます。条件にはB2>=70のような比較の式を書きます。

AND関数・OR関数で合否を判定する例

次のような試験結果の表(A1:C5)で考えます。

A(氏名) B(筆記) C(実技)
2 佐藤 80 75
3 鈴木 65 90
4 田中 72 60
5 山本 55 50

A列=氏名、B列=筆記の点数、C列=実技の点数という対応で、2行目に次の数式を入れて下の行にコピーすると、結果は次のようになります。

数式(2行目) 佐藤 鈴木 田中 山本
=AND(B2>=70,C2>=70) TRUE FALSE FALSE FALSE
=OR(B2>=70,C2>=70) TRUE TRUE TRUE FALSE

ANDは「両方70点以上」の佐藤さんだけがTRUE、ORは「どちらかが70点以上」の3人がTRUEで、両方70点未満の山本さんだけがFALSEになります。

IF関数とAND・ORを組み合わせて表示を分ける

TRUE・FALSEのままでは分かりにくいので、IF関数の条件部分にAND・ORを入れて「合格」「不合格」などと表示させます。B列=筆記、C列=実技です。

=IF(AND(B2>=70,C2>=70),"合格","不合格")

結果は佐藤さんが「合格」、ほか3人が「不合格」です。ANDをORに替えると、佐藤・鈴木・田中の3人が「合格」、山本さんだけが「不合格」になります。IF関数そのものの書き方はIF関数の基本的な使い方|条件で処理を分ける書き方で解説しています。

ANDとORは入れ子にもできます。たとえば「筆記が70点以上、かつ(実技が70点以上 または 筆記が90点以上)」なら=AND(B2>=70,OR(C2>=70,B2>=90))と書きます。条件が増えて読みにくくなったら、IFS関数で複数条件分岐をすっきり書く方法のように条件分岐そのものを整理するのも手です。

AND関数・OR関数のよくある注意点

AND関数・OR関数が登場する記事

AND関数・OR関数の使い方まとめ

AND関数は「すべて満たすか」、OR関数は「どれか1つでも満たすか」をTRUE/FALSEで返します。IF関数の条件部分に入れて=IF(AND(条件1,条件2),"合格","不合格")の形で使うのが基本です。範囲の条件付き集計には、エクセル関数で条件付きで中央値(MEDIAN)を計算する方法のような集計向けの方法もあわせて参考にしてください。

目次