概要
「この条件も、あの条件も、全部満たしているときだけ 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 など他の関数も、ずっと理解しやすくなります。
