AND関数の使い方|複数の条件をすべて満たすか判定する

執筆者:

カテゴリ:

ANDは、指定したすべての条件を満たすかどうかを判定する関数です。「かつ」の判定に使います。

すべて満たせば TRUE、1つでも外れれば FALSE を返します。

書式

=AND(条件1, 条件2, ...)

条件はいくつでも並べられます。

基本の動き

=AND(A2 >= 80, B2 >= 80)

A2もB2も80以上なら TRUE、どちらかが79以下なら FALSE です。

AND単体では TRUE / FALSE としか表示されないので、実務ではほぼ IF の中で使います。

=IF(AND(A2 >= 80, B2 >= 80), "合格", "不合格")

条件は3つ以上でもいい

=IF(AND(A2 >= 80, B2 >= 80, C2 >= 80, D2 = "提出済"), "合格", "不合格")

引数を並べるだけで条件が増えます。数値と文字列の判定を混ぜても構いません。

範囲での指定に注意

ANDは範囲を渡すこともできます。

=AND(A2:A10 >= 80)

これは「A2からA10のすべてが80以上か」を判定します。便利ですが、空白セルが含まれると意図しない結果になります。空白は0として扱われるため、1つでも空欄があると FALSE になります。

入力途中のデータで使うと誤判定するので、範囲指定は結果を確認してから使ってください。

実用例

期間内かどうかを判定する

=IF(AND(A2 >= DATE(2026,4,1), A2 <= DATE(2027,3,31)), "今年度", "対象外")

日付は「以上」と「以下」の2つで挟むのが基本形です。片方だけだと期間になりません。

数値が範囲内かを判定する

=IF(AND(A2 >= 10, A2 < 100), "2桁", "対象外")

「10以上100未満」を1つの式で書けます。境界をどちらに含めるかは >=> の使い分けで決まるので、境界の値でテストしてください。

複数の必須項目が埋まっているか

=IF(AND(A2<>"", B2<>"", C2<>""), "入力完了", "未入力あり")

<>""(空欄でない)を並べます。3つとも埋まっていれば完了です。

項目が多いなら COUNTA のほうが短く書けます。

=IF(COUNTA(A2:F2) = 6, "入力完了", "未入力あり")

項目が5つを超えたらCOUNTAに切り替える、というのが実用的な目安です。

条件付き書式で使う

ANDが最も活きるのは条件付き書式です。「カスタム数式」に次のように入れます。

=AND($D2 = "未処理", $E2 < TODAY())

「未処理」かつ「期限切れ」の行だけを赤くする、という指定になります。

列を $ で固定し、行は固定しないのがポイントです。これで行全体に書式が適用されます。ここを間違えると1セルだけ色が付いたり、全行が同じ判定になったりします。

掛け算で代用できる

ANDは配列に対してうまく働かないため、SUMPRODUCT や配列を扱う数式の中では掛け算 * で代用します。

=SUMPRODUCT((A2:A100 >= 80) * (B2:B100 >= 80))

TRUE は1、FALSE は0として扱われるため、掛け算の結果が1になるのは両方 TRUE のときだけです。掛け算がANDに相当するわけです。

同様に、足し算は OR に相当します。

ORとの使い分け

やりたいこと 使う関数
すべて満たす AND
どれか1つでも満たす OR

組み合わせることもできます。

=IF(AND(A2>=80, OR(B2="東京", B2="大阪")), "対象", "対象外")

「80点以上、かつ、東京または大阪」という判定です。入れ子が深くなったら、途中結果を別セルに出すと検証が楽になります。

まとめ

  • – 書式は =AND(条件1, 条件2, ...)
  • すべて満たしたときだけ TRUE
  • – 実務では IF の中か、条件付き書式で使う
  • – 期間・範囲の判定は「以上」と「以下」で挟む
  • – 配列の中では掛け算 * で代用する

関連する関数

  • OR — どれか1つでも満たすかの判定
  • IF — ANDの結果で表示を分ける
  • IFS — 多分岐の中でANDを使う
  • COUNTIFS — 複数条件に合う件数を数える
  • 関数一覧に戻る

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です