Excelの配列数式とは?

Microsoft Excelの「配列数式」とは一体何のことだかご存知でしょうか?配列とは複数のセルの集まりのことを指しており、配列数式とは「配列を対象にして一つの数式を作成する式」のことを指しています。入力時に「Ctrlキー+Shiftキー+Enterキー」を押すことから、各キーの頭の文字を取って「CSE形式」とも呼ばれることがあります。
配列数式で使用する引数は、すべて同じ行数・列数である必要があるので注意しましょう。配列数式には単一セルの配列数式(関数に直接セルの範囲を計算した結果を使用できる)と複数セルの配列数式(1つの配列数式でセルの範囲を計算した結果が行ごとの計算した結果となる)の二種類があり、どちらの数式もセルの範囲に対して計算を行います。
Excelの配列数式の使い方
配列数式を使用してみる

それでは、配列数式を使用してみましょう。画像の例では、単一セルの配列数式を使用します。「合計」を出力したいセルに「=SUM(B3:B5*C3:C5)」と入力して「Ctrlキー+Shiftキー+Enterキー」を同時押ししてみましょう。

これで、配列数式を使用して合計値を求めることができました。一つの数式だけで複数範囲の合計値を求めることができ、便利なことがお分かりいただけると思います。

応用です。画像例では、「商品」列が「チョコレート」の場合に「価格」列に入力されている価格を合計して出力しようとしています。この場合は「=SUM(IF(B2:B9="チョコレート",D2:D9,0))」と入力して「Ctrlキー+Shiftキー+Enterキー」を同時押ししましょう。

これで、チョコレートの行のみの価格合計を出力することができました。

ちなみに、複数セルの配列形式では「=B3:B5*C3:C5」と入力して行ごとの計算結果を出力することも可能です。
配列数式で複数条件を設定する場合
配列数式にて複数条件を設定したい場合ですが、「AND関数」・「OR関数」は使用できません。AND関数の代わりは「条件を()内に入力して*で連結する」・OR関数の代わりは「条件を()内に入力して+で連結する」となります。

画像の例で、商品が「チョコレート」かつエリアが「B」の場合のみ価格を合計して出力したいという場合には「=SUM(IF((B2:B9="チョコレート")*(C2:C9="B"),D2:D9,0))」と入力します。これで商品がチョコレートかつエリアがBのセルのみを抽出し、価格を合計して出力できますよ。
基本的に、条件を使用した配列数式のパターンは「{=関数(IF(配列条件,配列)}」となります。これを覚えておくと、配列数式で困ることも減るかと思います。
配列数式で使えない関数について
前述の通り配列数式においては「AND関数」・「OR関数」を使用することができませんが、他にも「COUNTIF関数」・「DSUM関数」・「RANK関数」・「SUMIF関数」などの関数は使用することができないことを覚えておきましょう。