Excel関数 逆引き集 | 条件すべて一致 → AND

Excel VBA Excel
スポンサーリンク

概要

「この条件も、あの条件も、全部満たしているときだけ OK にしたい」
そんなときに使う“まとめ役”が AND 関数です。

AND は、
複数の条件を受け取って
それが「全部 TRUE なら TRUE」「1つでも FALSE があれば FALSE」
という判定を返します。

そのまま使うこともありますが、真価を発揮するのは IF や IFS などの条件分岐と組み合わせたときです。


AND の基本

基本の書式と動き

書式はとてもシンプルです。

=AND(条件1, 条件2, 条件3, …)

イメージは「全部 OK かどうかをチェックするゲート」です。

例えば次のような式を考えます。

=AND(A2>=10, B2="有効")

A2 が 10 以上 かつ B2 が「有効」の場合だけ TRUE になります。
どちらか片方でも条件を満たさなければ FALSE になります。

AND の判定結果そのものをセルに表示してもよいですし、
多くの場合は IF や IFS の「条件の中」に入れて使います。


IF と AND を組み合わせて「条件すべて一致」のときに処理する

例1 二つの条件を両方満たしているか判定

A2 に「数量」、B2 に「ステータス」が入っているとします。
次の条件で「対象」「対象外」を判定したい。

  • 数量が 10 以上
  • ステータスが「有効」

両方満たすときだけ「対象」にしたい場合、次のように書きます。

=IF(AND(A2>=10, B2="有効"), "対象", "対象外")

ここで AND がやっていることは

  • A2>=10
  • B2=”有効”

の両方が TRUE のときだけ TRUE を返す、ということです。
IF は「条件」としてその TRUE / FALSE を受け取り、
TRUE のとき「対象」、FALSE のとき「対象外」を返しています。


例2 三つ以上の条件をすべて満たすかどうか

C2 に「売上」、D2 に「エリア」、E2 に「担当者ランク」があるとします。
次の3つすべてを満たしたら「ボーナス対象」にしたい。

  • 売上が 500000 以上
  • エリアが「東日本」
  • 担当者ランクが「A」

この場合、次のように書きます。

=IF(
  AND(C2>=500000, D2="東日本", E2="A"),
  "ボーナス対象",
  "対象外"
)

AND の中に条件をいくつでもカンマ区切りで並べられる、という感覚を持っておくと便利です。


IFS や他の関数との組み合わせ

IFS の条件部分に AND を入れる

例えば点数と欠席回数で評価を付けたいとします。
F2:点数
G2:欠席回数
条件はこうです。

  • 点数 80 以上 かつ 欠席 1 回以下 → 「S」
  • 点数 70 以上 かつ 欠席 3 回以下 → 「A」
  • 点数 60 以上 → 「B」
  • それ以外 → 「C」

IFS で書くと次のようになります。

=IFS(
  AND(F2>=80, G2<=1), "S",
  AND(F2>=70, G2<=3), "A",
  F2>=60,             "B",
  TRUE,               "C"
)

ここでのポイントは、
「複数条件をまとめたいところだけ AND でくくっている」ことです。


SUMIFS・COUNTIFS の考え方との違いと使い分け

SUMIFS / COUNTIFS などは、
「複数条件を全部満たすデータだけ合計・件数カウントする」関数です。

実は “考え方” は AND と同じで「条件すべて一致」です。
ただし、

  • SUMIFS / COUNTIFS は「集計」をする関数
  • AND は「TRUE / FALSE を返すだけの判定関数」

という役割の違いがあります。

セル単位で「この行が条件を全部満たしているか?」を判定したいときは AND、
表全体から「条件を満たすデータだけ集計したい」ときは SUMIFS / COUNTIFS というイメージです。


AND を使うときのよくあるつまずき

つまずき1 AND 単体では文字列を返さない

AND 自体は TRUE か FALSE しか返しません。
「OK / NG」などの文字列を返したいときは、必ず IF や IFS と組み合わせます。

悪い例(やりたいことは分かるが動かないわけではないが中途半端):

=AND(A2>=10, B2="有効")  ← TRUE / FALSE しか返せない

「対象 / 対象外」と表示したいなら、こうします。

=IF(AND(A2>=10, B2="有効"), "対象", "対象外")

つまずき2 条件を OR と混同する

AND = かつ(全部満たす)
OR = または(どれか1つでも満たす)

AND を使っているのに、
「どれか1つでも満たせばいいはずなのに全部満たさないと TRUE にならない」
という混乱がよく起きます。

「全部満たしてほしいときだけ AND」を使う、と割り切ると整理しやすくなります。


つまずき3 比較演算子の書き方ミス

よくあるミスをまとめると次のようなものがあります。

等しい
正:=A2=100
誤:=A2==100 (イコール2つは Excel では使いません)

空欄でない
正:=A2<>""
誤:=A2!=" " など

AND の中は普通の条件式なので、
ここでミスるとすべて FALSE になってしまいます。


例題

問題1

A2 に数量、B2 にステータスが入っています。
数量が 10 以上 かつ ステータスが「有効」のとき TRUE、それ以外は FALSE を返す AND の式を書いてください。

=AND(A2>=10, B2="有効")

問題2

C2 に売上金額、D2 にエリアが入っています。
売上が 500000 以上 かつ エリアが「西日本」のときだけ「対象」、それ以外は「対象外」と表示する IF+AND の式を書いてください。

=IF(AND(C2>=500000, D2="西日本"), "対象", "対象外")

問題3

E2 に点数、F2 に欠席回数が入っています。
点数が 80 以上 かつ 欠席回数が 2 回以下なら「優秀」、それ以外は「通常」と表示する式を書いてください。

=IF(AND(E2>=80, F2<=2), "優秀", "通常")

問題4

G2 に売上、H2 にステータスが入っています。
次の条件を満たすとき TRUE、そうでないとき FALSE を返す AND の式を書いてください。
条件:売上が 1000000 以上 かつ ステータスが「確定」。

=AND(G2>=1000000, H2="確定")

問題5

I2 に売上、J2 にエリア、K2 に担当者ランクが入っています。
売上が 300000 以上 かつ エリアが「東日本」かつ 担当者ランクが「A」の場合に「ボーナス対象」、それ以外は「対象外」と表示する IF+AND の式を書いてください。

=IF(AND(I2>=300000, J2="東日本", K2="A"), "ボーナス対象", "対象外")

まとめ

AND は、
「条件をすべて満たしているか?」を一言で判定するための関数です。

基本の型はとても簡単です。

=AND(条件1, 条件2, 条件3, …)

そして実務ではほぼ必ず、

=IF(AND(条件1, 条件2, …), 条件を全部満たしたとき, それ以外のとき)

の形で使われます。

「複数条件を一つの“まとまり”として扱うスイッチ」
として AND をイメージできるようになると、
IF・IFS・SUMIFS・COUNTIFS など他の関数も、ずっと理解しやすくなります。

タイトルとURLをコピーしました