プログラムにおける「配列」というのは、簡単に言えばひとつの変数に複数の値を埋め込むことです。たとえば変数Aを配列化し、A[1]に田中さん、A[2]に鈴木さん……とやっておいて、Aを1~30まで表示、などとやるとクラスメイト全員を一行で表示することができます。
さらにおおざっぱに言えば処理の圧縮、同様の処理の簡潔化を指して配列と言います。これをExcel関数が採用するとどうなるかというと……。
配列数式の使い方①複数の計算を同時に実行
配列数式を作るには、関数入力後Enterの代わりにCtrl+Shift+Enterを押します。このみっつのキーの頭文字をとって、CSE数式とも呼ばれます。
とりあえずひとつのセルに対して使う場合を解説します。
式を配列数式化
Ctrl+Shift+Enter
Ctrl+Shift+Enter

図の総売り上げを求める場合で考えます。

普通にやるのであれば、売上と販売数を掛け算して、これをオートフィルで延ばし、

あとは総額をすべてSum関数で合算すればオーケーです。

無事に目標達成できました。

では、今度は「総額」列を作らない場合で考えてみます。

一行ずつ掛け算したものを足していくこともできますが、行が増えるとちょっと現実的ではありません。

この場合、総売り上げに=Sum(B2:B6*C2:C6)と打ちこみますが、このままEnterを押すとエラーになります。

しかしここでCtrl+Shift+Enterを押すと式が{}で囲まれ、配列数式となります。値も正しいものが表示されました。

B2:C6*C2:C6というのは、B2*C2、B3*C3、B4*C4、B5*C5、B6*C6を意味し、つまり同時に5つの計算結果を得ています。しかもそれをSum関数で合算しています。

通常別々の計算結果は一度作業列に表示し、

その上で合算する、というのがExcelの通常動作です。配列数式を使うとこの中間地点をすっとばし、複数の計算(処理)を同時に行うことが可能となります。

要は、作業列を削除する(圧縮する)ための機能です。ちょっと面倒ですが、編集するたびにCtrl+Shift+Enterを押す必要があります。
②ひとつの式を複数のセルで共有

実用することはほぼないですが、配列数式を使うと、ひとつの数式で複数のセルをセットで計算することも可能です。配列数式のイメージを持つために知っておいてもいいかもしれません。
通常図のような場合、A2とB2とC2を掛け算し、それをコピーしますが、
通常図のような場合、A2とB2とC2を掛け算し、それをコピーしますが、

あらかじめ入力範囲を全て選択し、=A2:A4*B2:B4*C2:C4のように入力して、

Ctrl+Shift+Enterを押すことで、A2*B2*C2、A3*B3*C3、A4*B4*C4の結果を別々のセルに得ることができます。

この式を修正したい場合は、配列数式を入力したセルのどれかひとつを修正し、

再度Ctrl+Shift+Enterを押すことで、セットになってる式全てが修正されます。

もし3つのセル×3つのセル×1つのセル(数値)で実行した場合、

これは特に問題ありません(すべての結果で20%が使われる)が、

3×3×2つのセルだと、3つめがどれを参照していいのかわからないので、エラーになります。行はズレててもいいですが、参照するセルの数は複数の場合合わせます。

配列数式のどこか一か所だけを削除することはできません。このようにエラーになるので、

削除する時は、セットになっている配列数式全てを削除する必要があります。

Excel(エクセル)で使える時短ショートカット集
Excelでよく使う(あるいは人によっては役にたつ)ショートカットを集めてみました。

やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
コメント