ExcelのAND関数・OR関数の使い方:IF関数と組み合わせて複数条件を指定
ExcelのAND関数とOR関数の使い方を徹底解説。IF関数と組み合わせて「かつ」「または」の複数条件を判定する方法や、NOT関数との併用、よくあるエラーの対処法まで分かりやすく紹介します。
著者 Ayoub Farid · · 4 分で読めます
AND関数とOR関数を使うと、1つの数式で複数の条件をまとめてチェックできます。単体で使用すると「TRUE(真)」または「FALSE(偽)」を返します。IF関数と組み合わせることで、「売上が目標以上、かつ返品数が基準以下の場合にのみボーナスを支給する」といった高度な条件分岐が可能になります。
AND:すべての条件を満たす場合(かつ)
=AND(B2>=5000, C2<200)
売上が5,000以上かつ返品数が200未満の場合にのみ、TRUEを返します。
OR:いずれかの条件を満たす場合(または)
=OR(D2="Late", E2="Damaged")
どちらか一方でも問題(「遅延」または「破損」)がある場合に、TRUEを返します。
IF関数と組み合わせる
=IF(AND(B2>=5000,C2<200),"Bonus","No bonus")
=IF(OR(D2="Late",E2="Damaged"),"Review","OK")
ANDとORを組み合わせる
金額が1,000未満であるか、または金額が1,000以上でマネージャーの承認サインがある場合に「承認」と判定する例です:
=IF(OR(B2<1000,AND(B2>=1000,C2="Yes")),"Approved","Needs sign-off")
まずは日本語などの言葉で条件ロジックを整理してから、数式に変換するのがコツです。括弧を適切に使うことで、構造が把握しやすくなります。
NOT:結果を反転させる
=IF(NOT(C2="Paid"),"Chase","")
なお、多くの場合「等しくない」を表す比較演算子 <> を使った方がシンプルに記述できます:=IF(C2<>"Paid","Chase","")。
数値が2つの値の間にあるか判定する
=AND(B2>=18, B2<=65)
Excelには「BETWEEN」という関数がないため、2つの比較条件をAND関数で囲むのが標準的な方法です。
よくある間違い
- 日常の言葉通りに書いてしまう:
=IF(B2>10 AND B2<20, ...)のような書き方はエラーになります。必ずAND(B2>10,B2<20)と記述してください。 - 1つのセルを複数の値と比較する際に冗長になる:
=OR(C2="A",C2="B",C2="C")でも動作しますが、対象リストが長い場合は=ISNUMBER(MATCH(C2,{"A","B","C"},0))を使うか、マスタ参照リストを用意する方がスマートです。 - 文字列をダブルクォーテーションで囲んでいない: 文字列を
""で囲まないと、#NAME?エラーが発生します。
複数条件でカウント・合計する
複数の条件を満たす行をカウントしたり合計したりしたい場合、各行にAND関数を入れる必要はありません。COUNTIFS関数やSUMIFS関数を使えば、指定した複数条件を自動的にAND条件として処理してくれます。
実際に練習してみましょう
AND関数とOR関数は、Cellioで近日公開予定の「条件分岐(Decisions)」ユニットでも詳しく扱います。まずは練習問題でIF関数の課題に挑戦してみてください。
よくある質問
ExcelでANDとORを併用するにはどうすればよいですか?
入れ子(ネスト)にして記述します。例えば =OR(A2="VIP",AND(B2>100,C2="Yes")) のように組み合わせ、さらにIF関数で囲むことで任意のテキストを表示できます。
数値が指定した範囲内にあるか判定するには?
=AND(B2>=10,B2<=20) と記述すると、B2の値が10以上20以下の場合にTRUEが返されます。
AND関数には3つ以上の条件を指定できますか?
はい、カンマで区切ることで最大255個の条件を指定できます。
AND関数やOR関数はGoogleスプレッドシートでも使えますか?
はい、Googleスプレッドシートでもまったく同じ構文で使用できます。