Excel~AND関数で全ての条件を満たすか判定しよう~エクセル
エクセルですべての条件を満たしているか判定するAND関数について説明します。
- AND関数の書式はAND(論理式1,[論理式2],・・・) になります。
- 論理式1は一つ目の条件を指定します。
- [論理式2]以降は2つ目の条件、3つ目の条件・・・と指定します。
- 全ての論理式を満たす場合はTRUE、論理式の1つでも満たさない場合はFALSEを返します。
文字列を条件にする
下の画像の例で1班の男性かどうかの判定をセルD2に表示したい場合はセルD2に=AND(B2="1班",C2="男性")と入力しEnterを押します。
論理式1は班の項目のセルB2が1班かどうか判定したいのでB2="1班"になります。
論理式2は性別の項目のセルC2が男性かどうか判定したいのでC2="男性"になります。
つまりセルD2に=AND(B2="1班",C2="男性")と入力しEnterを押すとAさんは1班の男性なので論理式を全て満たすのでTRUEが表示されます。
セルD2からセルD7までオートフィルすると1班の男性はAさんとEさんなのでセルD2,D6にTRUEが表示され、それ以外の人は全ての論理式を満たしていなのでFALSEが表示されます。
数値を条件にする
下の画像の例でセルB2にセルA2の数値が3以上7未満かどうかの判定を表示したい場合はセルB2に=AND(A2>=3,A2<7)と入力しEnterを押します。
論理式1は数値の項目のセルA2が3以上かどうか判定したいのでA2>=3になります。
論理式2は数値の項目のセルA2が7未満かどうか判定したいのでA2<7になります。
比較演算子は以下の表に対応しています。
比較演算子 | 説明 |
---|---|
> | より大きい |
< | より小さい |
= | 等しい |
>= | 以上 |
<= | 以下 |
<> | 等しくない |
つまりセルB2に=AND(A2>=3,A2<7)と入力しEnterを押すとセルA2の数値5は論理式を全て満たすのでTRUEが表示されます。
セルB2からセルB7までオートフィルすると各行のA列の数値が3以上7未満の場合はTRUE、それ以外はFALSEがB列に表示されます。
空白を条件にする
下の画像の例でセルC2にセルA2のデータ1とセルB2のデータ2が両方空白かどうかの判定を表示したい場合はセルC2に=AND(A2="",B2="")と入力しEnterを押します。
論理式1はデータ1の項目のセルA2が空白かどうか判定したいのでA2=""になります。
論理式2はデータ2の項目のセルB2が空白かどうか判定したいのでB2=""になります。
つまりセルC2に=AND(A2="",B2="")と入力しEnterを押すとセルA2とセルB2は空白でないので全ての論理式を満たさないのでFALSEが表示されます。
セルC2からセルC8までオートフィルすると各行の各行のA列とB列が両方空白なのはセルC7だけなのでC7にTRUEが表示され、それ以外はFALSEが表示されます。
空白以外を条件にする
下の画像の例でセルC2にセルA2のデータ1とセルB2のデータ2が両方空白でないかどうかの判定を表示したい場合はセルC2に=AND(A2<>"",B2<>"")と入力しEnterを押します。
論理式1はデータ1の項目のセルA2が空白でないかどうか判定したいのでA2<>""になります。
論理式2はデータ2の項目のセルB2が空白でないかどうか判定したいのでB2<>""になります。
つまりセルC2に=AND(A2<>"",B2<>"")と入力しEnterを押すとセルA2とセルB2は空白でないので全ての論理式を満たしTRUEが表示されます。
セルC2からセルC8までオートフィルすると各行のA列とB列が両方空白でないセルC2、C3、C6、C8はTRUEが表示され、それ以外はFALSEが表示されます。
日付を条件にする
下の画像の例でセルB3にセルA3の日付が2016/9/28から2016/10/3の日付に入っているか判定したい場合はセルC3に=AND(A3>=DATE(2016,9,28),A3<=DATE(2016,10,3))と入力しEnterを押します。
論理式1はセルA3の日付が2016/9/28以降かどうか判定したいのでA3>=DATE(2016,9,28)になります。DATE関数はDATE(年,月,日)で日付を返します。
論理式2はセルA3の日付が2016/10/3以前かどうか判定したいのでA3<=DATE(2016,10,3)になります。
つまりセルB3に=AND(A3>=DATE(2016,9,28),A3<=DATE(2016,10,3))と入力しEnterを押すとセルA3の日付2016/9/26は期間外なのでFALSEが表示されます。
セルB3からB8までオートフィルすると各行のA列の日付が期間内のセルB5、B6、B7はTRUEが表示され、それ以外はFALSEが表示されます。
別セルの文字列を参照して条件にする
下の画像の例でAND関数の条件にセルA3とセルB3を参照してセルD6にAさんが条件を全て満たすかどうかの判定を表示したい場合は=AND(B6=$A$3,C6>=$B$3)と入力しEnterを押します。オートフィルした時に範囲がズレないように絶対参照$を使用しています。
論理式1は班の項目のセルB6がセルA3の1班かどうか判定したいのでB6=$A$3になります。
論理式2は性別の項目のセルC6がセルB3の男性かどうか判定したいのでC6>=$B$3になります。
つまりセルD6に=AND(B6=$A$3,C6>=$B$3)と入力しEnterを押すとAさんは1班の男性なので論理式を全て満たすのでTRUEが表示されます。
セルD6からセルD11までオートフィルすると1班の男性はAさんとEさんなのでセルD6,D10にTRUEが表示され、それ以外の人は全ての論理式を満たしていなのでFALSEが表示されます。
セルA3とセルB3の条件を書き換えればセルD6からセルD11の結果も瞬時に変わります。
別セルの数値を参照して条件にする
下の画像の例でAND関数の条件にセルA3とセルB3を参照してセルB6にセルA6の数値が3以上7未満かどうかの判定を表示したい場合はセルB6に=AND(A6>=$A$3,A6<$B$3)と入力しEnterを押します。オートフィルした時に範囲がズレないように範囲に絶対参照$を使用しています。
論理式1は数値の項目のセルA6がセルA3の条件、3以上かどうか判定したいのでA6>=$A$3になります。
論理式2は数値の項目のセルA6がセルB3の条件、7未満かどうか判定したいのでA6<$B$3になります。
つまりセルB6に=AND(A6>=$A$3,A6<$B$3)と入力しEnterを押すとセルA6の数値5は論理式を全て満たすのでTRUEが表示されます。
セルB6からセルB11までオートフィルすると各行のA列の数値が3以上7未満の場合はTRUE、それ以外はFALSEがB列に表示されます。
セルA3とセルB3の条件を書き換えればセルB6からセルB11の結果も瞬時に変わります。
IF関数との組み合わせ
AND関数はIF関数と組み合わせて使えばAND関数がTRUEの時とFALSEの時の表示を指定できます。
下の画像の例でセルD2にAさんが1班の30歳以上の条件を満たせば〇を表示し、満たさなければ空白にしたい場合はセルD2に=IF(AND(B2="1班",C2>=30),"〇","")と入力しEnterを押します。
IF関数の書式はIF(論理式,[値が真の場合],[値が偽の場合])になります。
IF関数の論理式にAND(B2="1班",C2>=30)を指定すればセルB2が1班でセルC2が30以上の条件を全て満たせばTRUEを返し、この場合はIF関数の[値が真の場合]が表示されます。AND関数の条件が1つでも満たされない場合はIF関数の[値が偽の場合]が表示されます。
IF関数の[値が真の場合]にはAND関数の条件を満たした場合に〇を表示したいので"〇"になります。
IF関数の[値が偽の場合]にはAND関数の条件を満たさない場合は空白にしたいので""になります。
つまりセルD2に=IF(AND(B2="1班",C2>=30),"〇","")と入力しEnterを押すとAさんは1班の30歳以上なので論理式を全て満たすので〇が表示されます。
セルD2からセルD7までオートフィルすると1班の30歳以上の人はAさんとEさんなのでセルD2,D6に〇が表示され、それ以外の人は全ての論理式を満たしていなので空白が表示されます。