更新日:、 作成日:

エクセル AND 関数:全ての条件を満たしているか判定する

はじめに

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

AND 関数は複数条件のすべての条件を満たしているか判定します。論理積 (かつ) を求められます。

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

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

=AND(A1>=100,A1<=200) のようにして、セルの値が 100 ~ 200 の範囲か判定できます。

スピルで AND 条件にするには条件を掛け算します。

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

AND 関数の引数

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

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

引数「条件」

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

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

使い方、条件が一つ

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

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

値が 100 以上

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

=AND(B3>=100)
17

名前がエクセル

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

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

名前がエクセル以外

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

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

使い方、複数条件

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

複数条件を判定する

複数条件を判定します。

=AND(B3,C3)

すべての条件を満たす (TRUE) ときに結果が TRUE になります。

25

数値が指定の範囲内

値が 100 以上でセル「C3」以下か判定します。

=AND(B3>=100,B3<=C3)
20

日付が指定の範囲内

日付が開始日から 2000/12/31 までの範囲内か判定します。「DATE 関数」を使用して日付を入力できます。

=AND(B3>=C3,B3<DATE(2001,1,1))

終了日を B3<=DATE(2000,12,31)) にすると、時刻が含まれるときに終了日が条件に一致しなくなるので、次の日より小さい判定にしています。

21

名前がエクセルかつ値が 100 以上

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

=AND(B3="エクセル",C3>=100)
22

高度な使い方

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

OR 条件を含める

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

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

スピルで AND 条件

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

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

(条件1)*(条件2)

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

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

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

24

この結果を「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 で確定すると「配列数式」になり、すべてのバージョンで使用できます。

ラムダで AND 条件

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

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

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

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

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

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

解説

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

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

1 つでも条件を満たすときに TRUE を返すには「OR 関数」を使用します。

文字列を =<> から比較するとき、大文字と小文字を区別しません。"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