cellio

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スプレッドシートでもまったく同じ構文で使用できます。

あわせて読みたい