エクセルは、関数が分かってくるとちょいと楽しい。
そんなわけで、AND関数のお勉強。
エクセルのAND関数は、複数の条件をすべて満たすかどうかを判定してくれる関数で、IF関数と共によく使用される。
目次
AND関数の概要
書式
AND(条件式1,条件式2,...)
サンプル書式
A1 | B1 | サンプル書式 | 表示結果 | 概要 |
---|---|---|---|---|
50 | 70 | =AND(A1<60,B1>60) | TRUE | 60が50よりも大きく、70よりも小さいかどうかを判定 |
エクセル | 2010 | =AND(A1="エクセル",B1>2007) | TRUE | A1の文字列が同一で、なおかつ2007よりも大きいかを判定。 |
AND関数の説明
AND関数は、複数の条件をすべて満たす場合にはTRUE(真)、満たさない場合はFALSE(偽)を返して、条件を判定してくるIF関数と共によく使用される。
数値だけではなく、上記のサンプル書式のように「エクセル」などの文字列を判定することもできるので、数値と組み合せて使うこともできる。
AND関数とIF関数との併用
複数の条件をすべて満たした場合には○○を表示、満たさない場合には●●を表示せよ、というようなことがAND関数とIF関数を使えば簡単にできる。
A1 | B1 | サンプル書式 | 表示結果 |
---|---|---|---|
USBメモリ | 2010 | =IF(AND(A1="USBメモリ",2000 < B1),"2000円以上の商品","") | 2000円以上の商品 |
上記の例の場合、A1のセルが「USBメモリ」という文字列かどうかを判定し、なおかつB1の数値が2000よりも大きいかどうかを判定して、これらの条件をすべて満たしているかをAND関数で判定する。
そして、それらがすべて満たされているのなら、IF関数のTRUE(真)の「2000円以上の商品」を表示し、満たしていないのならFALSE(偽)の「""(空白)」を表示させる。
ちなみに、関数の中にさらに関数を利用することを入れ子、又はネストという。
AND関数の複数条件を満たしているセルの数を数える①
上記のサンプル書式をさらに発展させて、例えば下記のようにAND関数の複数条件をすべて満たしているセルの個数を割り出すことができる。
A | B | C |
---|---|---|
USBメモリ | 6000 | 2000円以上の商品 |
USBメモリ | 3000 | 2000円以上の商品 |
USBメモリ | 2000 |
サンプル書式 | 表示結果 |
---|---|
=COUNTIF(C1:C3,"?*") | 2 |
COUNTIF関数は、選択したセルの範囲の中に指定した文字列が含まれているかを検索して、該当したセルの数を返してくれる。
上記のサンプル書式はC1からC3までのセルの範囲で、文字が1文字でも含まれているかを調べるためにワイルドカードを使って求めている。
? 任意の1文字
* 任意の長さの文字
ワイルドカードの詳細についてはここでは省略するが、任意の文字が1文字でも含まれているかを調べるためのものだと覚えておこう。
AND関数の複数条件を満たしているセルの数を数える②
上記のCOUNTIF関数以外でも、違う考え方でAND関数の複数条件を満たしているセルを数えることができる。
A | B | C |
---|---|---|
USBメモリ | 6000 | 2000円以上の商品 |
USBメモリ | 3000 | 2000円以上の商品 |
USBメモリ | 2000 |
サンプル書式 | 表示結果 |
---|---|
=COUNTA(C1:C3)-COUNTBLANK(C1:C3) | 2 |
流れとしては、先ほどのIF関数を使ってAND関数を満たしていない場合は「""(空白)」としているので、それをCOUNTBLANK関数を使って空白のセルを数える。
そして、COUNTA関数を使って文字や数値、式などのデータが入力されているセル全体を数え、そこから空白セルを引いたものとなっている。
(空白となっているセルC3は、式データが含まれるのでこれもCOUNTA関数では1と数えている。)
AND関数を使って日付の比較判定
下記のサンプル書式は、A1の2013年2月7日が、2010年6月17日よりも後で、2013年6月7日よりも前の日かどうかを判定しているサンプルの書式。
A1 | サンプル書式 | 表示結果 |
---|---|---|
2013/2/7 | =AND(DATE(2010,6,17)<A1,DATE(2013,6,7)>A1) | TRUE |
DATE関数は、日付のシリアル値を返してくれるので、それを使って日付をAND関数で条件が満たされているかを判定している。
2010年6月17日=40346 < 2013年2月7日=41312 < 2013年6月7日=41432シリアル値とは1900年1月1日を1として、そこからの通算日を数えたもの。