[Sheet1]
A | B | C | |
1 | 氏名 | 得点 | 性別 |
2 | Aさん | 53 | 男 |
3 | Bさん | 61 | 女 |
4 | Cさん | 89 | 女 |
5 | Dさん | 75 | 男 |
という表があったとき、配列関数を使用して、女性の70点以上の点数だけ たし算する場合は、
(1)B6セルを選択。
(2)=SUM(IF((B2:B5>=70)*(C2:C5="女"),B2:B5,"")) と入力して、CTRL+SHIFT+ENTER。
という手順で行うことは前回説明した通りですが、まずは {=SUM(IF(B2:B5>=70,B2:B5,""))} と、「女性」という条件を除いて式を組み立てました。今回はこの「女性」というand条件を加えてみて、式を完成させます。
先ほどの式の、IF関数の部分(青字部分)を、IF(and(B2:B5>=70,C2:C5="女"),B2:B5,"") としてもエラー値が返ってきます。
配列関数の中では「and」や「or」は使えないのです。
そこで、論理値をそのまま使用することになります。論理値というのは前述の「TRUE」と「FALSE」のことで、「TRUE」=1,FALSE」=0と変換されます。IF関数で調べた結果、「TRUE」となったものだけがsum関数で計算されることになります。通常、「and」条件は「*」で、「or」条件は「+」で表現することができますので、「and(B2:B5>=70,C2:C5="女")」 というのは、「(B2:B5>=70)*(C2:C5="女")」と表現できます。
計算を順番に追っていきますと、まず、B2セルの値が70以上かどうかチェックされ「53」であることがわかると"FALSE"(→ゼロという意味)が返されます。
次にC2セルの値が「女」かどうかチェックされ「男」であることがわかると"FALSE"が返されます。かけ算によって、0*0=0が返され、sum関数の対象から外れます。
そして次に、B3セルの値が70以上かどうかチェックされ「61」であることがわかると"FALSE"が返されます。次にC3セルの値が「女」かどうかチェックされ「女」であることがわかると"TRUE"(→1という意味)が返されます。かけ算によって、0*1=0が返され、sum関数の対象から外れます。
そして次に、B4セルの値が70以上かどうかチェックされ「89」であることがわかると"TRUE"が返されます。次にC4セルの値が「女」かどうかチェックされ「女」であることがわかると"TRUE"が返されます。かけ算によって、1*1=1が返され、sum関数の対象となります。
同様に、次のB5セル,C5セルについては、"TRUE"*"FALSE"="FALSE"となり sum関数の対象から外れます。
このようにして、「89」という計算結果が最終的に得られます。
配列関数は、sum関数のほか、average関数,count関数,max関数,min関数,large関数,small関数などで使用できます。知っておくと何かと便利ですよ。
<<ガイドシートURL>>
http://www.tcat.ne.jp/~ryu/PLE/Kansu/39.pdf