<この記事は2829字です>
はじめに
配列数式とは
TRUEとFALSEの性質を理解する
TRUEとFALSEの数的な意味
TRUE = 1FALSE = 0
つまり、TRUEとFALSEは計算ができるということを示しています。
例えば、
TRUE × TRUE = TRUE (1×1=1)
TRUE × FALSE = FALSE (1×0=0)
IF関数の入子構造
これと同じ処理をTRUEとFALSEの性質を使いますと、下図になります。
この式の場合3行目ですので”たかお”の属性を判断します、
- C3=”男”ですので、FALSE→0
- D3=25 ですので、FALSE→0
- E3=A町 ですので、TRUE→1
配列数式で集計してみる
3つの条件に合致する件数は?
下図は、表の”女性で30歳以下でA町の人の人数”を配列数式を使い集計したものです。複雑な計算の割には数式がとてもシンプルになっていることが分かると思います。
配列数式では、一つのセルではなく配列を処理します。したがって、性別・年齢・住所のそれぞれ3~9行目に対し抽出条件を設定しています。
SUM関数のカッコ内には、条件を満たすかどうかの答え(TRUE、FALSE)を掛け算してすべての条件を満たすとき”1”となるように記述しています。
分かりやすいように、SUM関数のカッコ内の条件式を関数として入力してみました。IF関数で”Yes”となっているセルと対応して”1”となっていることが分かります。
条件の追加
次に、配列数式に趣味に関する条件を増やしてみます。
下図のように *(F3=”バスケ”) を追記すればいいのです。
SUM関数のカッコ内に条件をどれだけ追加しても問題はありません。
読みやすくする
この数式の可読性を高めるために、セルに名前を付けてみます。(名前の付け方については説明を省きます。名前ボックス使用)とても見やすくなります。
この時気を付けなければならないのは、配列の数(今回の場合は3~9ですので7となります)は必ず同じ出なくてはエラーが出てしまいます。名前をつける際には気を付けましょう。
合計値を計算
件数だけではなく条件に合った数値の合計を計算してみます。
条件は”女性で30歳以下でA町に住んでいて趣味がバスケの人の得点合計”です。
関数の最後に得点欄(G3:G9)を追記しています。抽出条件を”1”か”0”で判定し、それに得点を掛け算して合計を計算しています。
他の関数を使った応用
OR関数を使ってより細かな抽出条件を設定してみます。
下図は、趣味が”バスケ” → 趣味が”バスケ”か”サッカー” の条件と変更しています。OR関数もTRUEとFALSEを返す関数ですので、他の抽出条件と同じように計算可能です。
【VBAコード付】”選択範囲で中央”を右クリックメニューに追加しよう - 50代企業内診断士のつぶやき
まとめ
配列数式はあまり解説している書籍もありませんし、Webでもわかりやすい解説は見つけられませんでした。
しかし、読んでいただいてわかる通り非常に便利で使い勝手のよい関数かと思います。この使い方はさらには応用が利き、いろんなアイデアでより便利になると思っております。ぜひ使ってみてください。良いアイデアがあれば教えていただけるとありがたいです。
これからは、”Enter+Shift+Ctrl”で関数入力をしましょう!