Excel関数 逆引き集 | 範囲内か判定 → AND

Excel VBA Excel
スポンサーリンク

概要

「点数が 60〜79 点の“合格ライン内”か判定したい」
「日付が 4 月〜6 月の“第2四半期の範囲内”かチェックしたい」
「数量が 10 個以上 かつ 100 個以下かを TRUE / FALSE で判定したい」

こういう「ある値が“範囲の中に入っているか”」を判定するときに便利なのが AND 関数です。

AND は、
「複数の条件がすべて TRUE なら TRUE、1つでも FALSE があれば FALSE」
を返す“論理チェック専用”の関数です。

この「すべて TRUE なら TRUE」という性質を利用すると、
「下限以上 かつ 上限以下」をまとめて判定できる=「範囲内か」を一発で確認できます。


AND の基本

AND の書式と動き

基本形はこうです。

=AND(論理式1, 論理式2, [論理式3], …)

意味はとてもシンプルで、

  • 中に書いた論理式(条件)が全部 TRUE → 結果は TRUE
  • 1つでも FALSE が混じっていれば → 結果は FALSE

です。

例えば、

=AND(10>5, 20>15)   ' → TRUE(どちらも TRUE)
=AND(10>5, 20<15)   ' → FALSE(片方 FALSE)

この「全部満たしているか?」という性質が、「範囲内判定」と相性抜群です。


数値が範囲内か判定する基本形

A2 の点数が 60〜79 点の範囲内かを判定する

たとえば、
「60 点以上 かつ 80 点未満」を“合格ライン内”としたい場合。

A2 の点数がこの範囲に入っているか判定する AND の式はこうなります。

=AND(A2>=60, A2<80)

A2 が 60〜79 のときだけ、2つの条件が両方 TRUE になるので、
結果は TRUE(範囲内)になります。

A2 が 59 以下、または 80 以上だと、どちらかが FALSE になるので
結果は FALSE(範囲外)です。


A2 の点数が 0〜100 点の“有効範囲内”かを判定する

「0 点以上 かつ 100 点以下」を有効範囲としたい場合は、次のように書きます。

=AND(A2>=0, A2<=100)

0〜100 のとき TRUE(有効)、
それ以外は FALSE(異常値)という具合にチェックできます。


日付が範囲内か判定する

A2 の日付が 2024/4/1〜2024/6/30 の間か判定

日付も「範囲内かどうか」を AND で判定できます。

「第2四半期(2024/4/1 以上 かつ 2024/6/30 以下)」のとき TRUE にしたいなら、次のように書きます。

=AND(A2>=DATE(2024,4,1), A2<=DATE(2024,6,30))

DATE(2024,4,1) は 2024/4/1 を表す関数です。
A2 がこの期間の中に入っていれば TRUE、それ以外は FALSE になります。


文字列と数値を組み合わせた範囲判定

支店が「東京」 かつ 売上が 100,000〜499,999 の範囲内か

A列に支店名、B列に売上が入っているとします。

「支店が東京 かつ 売上が 100,000 以上 かつ 500,000 未満」
の行だけを TRUE にしたい場合、AND を組み合わせてこう書きます。

=AND(A2="東京", B2>=100000, B2<500000)

3つすべてが TRUE のときだけ TRUE になります。


AND と IF を組み合わせて「範囲内→OK」と表示する

範囲判定結果を文字列に変換する

単に TRUE / FALSE を見るだけでなく、
「範囲内なら『OK』、範囲外なら『NG』と表示したい」
ということも多いはずです。

その場合は AND の結果を IF で包みます。

例:A2 が 60〜79 点なら「合格」、それ以外は「不合格」と表示する。

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

AND 部分が TRUE → 「合格」
AND 部分が FALSE → 「不合格」
という流れで動きます。


範囲内かどうかを「数値 1/0」に変換する

TRUE / FALSE を 1 / 0 にして集計に使う

AND の結果は TRUE / FALSE ですが、
これを 1 / 0 に変換すると、SUM と組み合わせて「範囲内の件数」を数えたりできます。

A2:A100 の点数のうち、「60〜79 点の範囲内」の件数を求めるイメージとしては、次のような形です。

=SUM(--( (A2:A100>=60) * (A2:A100<80) ))

少し上級ですが、
(A2:A100>=60) が TRUE/FALSE、
(A2:A100<80) も TRUE/FALSE。
掛け算で AND 条件を表現し、-- で 1/0 に変換して SUM で合計すると、
「範囲内の件数」が求まります。

まずは「単一セルの範囲判定」に慣れてから、こうした集計に進むと理解しやすいです。


例題

問題1

A2 の点数が 60〜79 点の範囲内なら TRUE、
それ以外なら FALSE を返す AND の式を書いてください。

=AND(A2>=60, A2<80)

問題2

A2 の点数が 0〜100 点の範囲内なら TRUE、それ以外なら FALSE を返す式を書いてください。

=AND(A2>=0, A2<=100)

問題3

A2 の日付が 2024/1/1 以上 かつ 2024/12/31 以下なら TRUE、
それ以外は FALSE を返す式を書いてください(DATE 関数を使ってください)。

=AND(A2>=DATE(2024,1,1), A2<=DATE(2024,12,31))

問題4

A2 の点数が 60〜79 点の範囲内なら「合格」、
それ以外なら「不合格」と表示する IF+AND の式を書いてください。

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

問題5

A2 に支店名、B2 に売上が入っています。
「支店が東京 かつ 売上が 100,000 以上 かつ 500,000 未満」のとき TRUE、
それ以外は FALSE を返す AND の式を書いてください。

=AND(A2="東京", B2>=100000, B2<500000)

まとめ

「範囲内か判定 → AND」の基本は、
「下限以上 かつ 上限以下」を AND でつなぐ、という発想です。

代表的なパターンは次の形です。

=AND(値>=下限, 値<=上限)   ' ~以上~以下(閉区間)

=AND(値>=下限, 値<上限)    ' ~以上~未満(半開区間)

これを IF と組み合わせれば、
「範囲内なら OK、範囲外なら NG」といったラベル付けも簡単にできます。

まずは点数や売上、日付などで「◯〜◯の間か?」を判定する式を、
自分のシートで 2~3 個作ってみてください。
AND の“範囲チェック専用スイッチ”としての感覚が、自然と身についてきます。

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