[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