配列数式の考え方1

★下記の様な表があったとして、A列が○の時のB列の合計を求めてみましょう。

SUMIF関数を使えば出来ますが、あえてここでは配列数式(配列式)でしてみます。

エクセルの配列数式の考え方:例題1

まず、C1に
=IF(A1="○",B1,"")
と入力し、オートフィルでコピーします。下図の様に値が返って来ます。


エクセルの配列数式の考え方:例題1


このC列をSUM関数で合計すれば○の時の合計が出ます。

これを一気に計算する方法が配列数式です。

その方法は

=SUM(IF(A1:A10="○",B1:B10,""))

と入力し、CtrlキーとShiftキーを押しながらEnterキーで確定します。
※数式バーには{=SUM(IF(A1:A10="○",B1:B10,""))}と表示されます。


そもそもSUM関数で=SUM(C1:C10)と範囲指定して合計できるかというと配列も計算できる関数だからです。C1:C10という範囲はC1からC10までの範囲の値を返す配列なのです。

{C1の値,C2の値,・・・・,C10の値}

という配列を返します。この配列を合計しているから範囲内の合計が出るのです。

という前提を踏まえて、

=IF(A1:A10="○",B1:B10,"")

といった方法で配列を返すにはCtrlキーとShiftキーを押しながらEnterキーで確定する必要があります。

すると

{10,,,,50,,70,,90,100}

というA列が○の場合の時のB列の値だけの配列が返ります。(ひとつのセルに入力した場合の表示上は10だけです。複数行範囲選択してCtdl+Shift+Enterすれば配列を見る事が出来ます。)

この配列をSUM関数で合計しているので答えがでるのです。


ページトップ