Excel関数 逆引き集 | 範囲外か判定 → OR

Excel VBA Excel
スポンサーリンク

概要

「点数が 0〜100 の範囲から外れていないかチェックしたい」
「売上が 10 万円未満 または 100 万円超なら“異常値”と判定したい」
「日付が期間外なら警告を出したい」

こうした “範囲外かどうか” を判定するのに便利なのが OR 関数です。

AND が「すべての条件を満たすと TRUE」なのに対し、
OR は“どれか1つでも TRUE なら TRUE” になります。

この性質を使うと、

  • 下限より小さい
  • 上限より大きい

のどちらかを満たしたら TRUE → 「範囲外」と判定できます。


OR の基本

OR の書式と動き

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

動きはとてもシンプルです。

  • 1つでも TRUE があれば → TRUE
  • 全部 FALSE のときだけ → FALSE

例:

=OR(5>10, 20>15)   ' → TRUE(後者が TRUE)
=OR(5>10, 2>3)     ' → FALSE(どちらも FALSE)

数値が“範囲外”か判定する基本形

A2 の点数が 0〜100 の範囲外か判定する

「0〜100 の範囲外」=
0 未満 または 100 超 のどちらかを満たしたら TRUE。

=OR(A2<0, A2>100)
  • A2 が 0〜100 のとき → FALSE(範囲内)
  • A2 が 0 未満 または 100 超 → TRUE(範囲外)

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

「60〜79 の範囲外」=
60 未満 または 80 以上。

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

日付が“期間外”か判定する

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

期間外=
2024/4/1 より前 または 2024/6/30 より後。

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

日付も大小比較ができるので、数値と同じ考え方で判定できます。


文字列+数値の複合条件で“範囲外”を判定

支店が東京 以外 または 売上が 100,000 未満 のとき TRUE

A列:支店
B列:売上

=OR(A2<>"東京", B2<100000)
  • 支店が東京でない
  • 売上が 100,000 未満

どちらかを満たしたら TRUE(=範囲外)になります。


OR と IF を組み合わせて「範囲外 → NG」と表示する

範囲外なら「NG」、範囲内なら「OK」

例:A2 が 0〜100 の範囲外なら NG。

=IF(OR(A2<0, A2>100), "NG", "OK")

OR が TRUE → NG
OR が FALSE → OK


OR を使った“異常値チェック”のテンプレート

数値の異常値チェック(下限・上限)

=OR(値<下限, 値>上限)

例:売上が 10 万〜100 万の範囲外なら TRUE。

=OR(B2<100000, B2>1000000)

日付の異常値チェック(期間外)

=OR(日付<開始日, 日付>終了日)

文字列の異常値チェック(許可されていない値)

許可されている値が「A」「B」「C」だけの場合:

=OR(A2<>"A", A2<>"B", A2<>"C")

ただしこれは 常に TRUE になるため、
実際には「NOT+OR」または「AND」を使うのが正解です。

正しい書き方:

=AND(A2<>"A", A2<>"B", A2<>"C")

OR は「範囲外(数値・日付)」に向いていて、
「許可リスト外」には AND が向いています。


例題

問題1

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

=OR(A2<0, A2>100)

問題2

A2 の点数が 60〜79 の範囲外なら TRUE を返す式を書いてください。

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

問題3

A2 の日付が 2024/1/1〜2024/12/31 の期間外なら TRUE を返す式を書いてください。

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

問題4

A2 の点数が 0〜100 の範囲外なら「NG」、範囲内なら「OK」と表示する IF+OR の式を書いてください。

=IF(OR(A2<0, A2>100), "NG", "OK")

問題5

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

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

まとめ

OR は、

  • どれか1つでも条件を満たしたら TRUE
  • すべて満たさなければ FALSE

という性質を持つため、
“範囲外かどうか”を判定するのに最適な関数です。

基本形は次の通りです。

=OR(値<下限, 値>上限)

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

AND と OR をセットで理解すると、
Excel の論理判定が一気にスムーズになります。

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