更新日:、 作成日:

エクセル OR 関数:一つでも条件を満たしているか判定する

はじめに

エクセルの OR 関数の使い方を紹介します。

OR 関数は複数条件の一つでも条件を満たしているか判定します。論理和 (または) を求められます。

=OR(TRUE,FALSE) のように、1 つでも条件を満たすときは TRUE になります。

=OR(FALSE,FALSE) のように、すべての条件を満たさないときは FALSE になります。

=OR(A1<=20,A1>=80) のようにして、セルの値が 20 以下または 80 以上か判定できます。

スピルで OR 条件にするには条件を足し算します。

複数の条件をすべて満たしているかは「AND 関数」を使用します。
条件の結果を反転するには「NOT 関数」を使用します。
条件の結果が異なるか判定するには「XOR 関数」を使用します。

OR 関数の引数

OR(条件1)
OR(条件1, 条件2 …)
1 つでも条件を満たすときは TRUE を返します。すべて満たさないときは FALSE を返します。

引数「条件」セルの範囲、条件を比較演算子を使って指定します。

引数「条件」

使用できる比較演算子には次のものがあります。

演算子 演算名 使用例 結果
=等しい1=2FALSE
<>等しくない1<>2TRUE
>大きい1>2FALSE
<小さい1<2TRUE
>=以上1>=2FALSE
<=以下1<=2TRUE

使い方、条件が一つ

OR 関数の条件が一つの使い方を紹介します。

OR 関数は複数条件を判定するためのものなので、条件が一つのときに使用する意味はありません。条件の指定の仕方として紹介します。

値が 100 以上

値が 100 以上か判定します。

=OR(B3>=100)
17

名前がエクセル

名前が エクセル か判定します。

=OR(B3="エクセル")
18

名前がエクセル以外

名前が エクセル 以外か判定します。

=OR(B3<>"エクセル")
19

使い方、複数条件

OR 関数の複数条件の使い方を紹介します。

複数条件を判定する

複数条件を判定します。

=OR(B3,C3)

1 つでも条件を満たす (TRUE) ときに結果が TRUE になります。

20

値が 20 以下またはセルの値以上

値が 20 以下またはセル「C3」以上か判定します。

=OR(B3<=20,B3>=C3)
21

日付がセルの値以前または 2001/1/1

日付がセル「C3」以前または 2001/1/1 か判定します。「DATE 関数」を使用して日付を入力できます。

=OR(B3<=C3,B3=DATE(2001,1,1))
22

名前がエクセルまたは値が 100 以上

名前が エクセル または値が 100 以上か判定します。

=OR(B3="エクセル",C3>=100)
23

高度な使い方

OR 関数と他の関数を組み合わせた使い方などを紹介します。

AND 条件を含める

名前が エクセル または、バージョンが 365 かつ値が 100 以上か判定します。「AND 関数」を使用して「かつ」を判定できます。

=OR(B3="エクセル",AND(C3=365,D3>=100))
24

スピルで OR 条件

OR 関数は「スピル」されないので、スピルには使用できません。

スピルで OR 条件を入力するには条件を足し算します。条件を () で囲む必要があります。

(条件1)+(条件2)

名前が エクセル またはバージョンが 365 かスピルで判定します。

=(B4:B8="エクセル")+(C4:C8=365)

結果が TRUE のときは 1 以上、FALSE のときは 0 になります。

25

この結果を「SUM 関数」や「FILTER 関数」などに入力して、複数条件に対応できます。詳しくはそれぞれの関数のページをご覧ください。

=SUM(IF((B4:B8="エクセル")+(C4:C8=365),D4:D8,FALSE))
=FILTER(B4:D8,(B4:B8="エクセル")+(C4:C8=365))
スピルについて詳しくは「スピル、動的配列数式の使い方」をご覧ください。
スピルは 365 または 2021 から使用できます。

数式を Ctrl + Shift + Enter で確定すると「配列数式」になり、すべてのバージョンで使用できます。

ラムダで OR 条件

ラムダで OR 条件を入力するには「MAP 関数」を使用します。複雑なので詳細は関数のページをご覧ください。

=MAP(B4:B8,C4:C8,
LAMBDA(b,c,
OR(b="エクセル",c=365)))

この結果を「FILTER 関数」などに入力して、複数条件に対応できます。

=FILTER(B4:D8,
MAP(B4:B8,C4:C8,
LAMBDA(b,c,
OR(b="エクセル",c=365))))

また「SUM 関数」などを複数条件に対応できます。詳しくは関数のページをご覧ください。

=SUM(
MAP(B4:B8,C4:C8,D4:D8,
LAMBDA(b,c,d,
IF(OR(b="エクセル",c=365),d,FALSE))))
ラムダは 365 で使用できます。

解説

1 つでも満たす条件 (TRUE) があるなら、TRUE を返します。

すべての引数「条件」を満たさない (FALSE) なら、FALSE を返します。

すべての条件を満たすときに TRUE を返すには「AND 関数」を使用します。

文字列を =<> から比較するとき、大文字と小文字を区別しません。"ABC"="abc" は TRUE になります。「EXACT 関数」を使用して大文字小文字を区別できます。

IF 関数」など条件を入力する関数を複数条件にできます。

引数「条件」の結果が数値のときは 0 なら FALSE、それ以外なら TRUE として扱います。

引数「条件」の結果が文字列のときはエラー #VALUE! になります。

文字列かどうかや空白など、特定の値を条件にする方法は「COUNTIF 関数」にまとめています。

論理関数の一覧

TRUE や FALSE を論理演算する関数には次のものがあります。

関数名 演算名 使用例 結果
AND論理積AND(TRUE,TRUE)
AND(TRUE,FALSE)
AND(FALSE,FALSE)
TRUE
FALSE
FALSE
OR論理和OR(TRUE,TRUE)
OR(TRUE,FALSE)
OR(FALSE,FALSE)
TRUE
TRUE
FALSE
NOT論理否定NOT(TRUE)
NOT(FALSE)
FALSE
TRUE
XOR排他的論理和XOR(TRUE,TRUE)
XOR(TRUE,FALSE)
XOR(FALSE,FALSE)
FALSE
TRUE
FALSE