Excel(エクセル)で複数計算を同時に行い作業列を圧縮する方法/配列数式(CSE)の使い方

IT

プログラムにおける「配列」というのは、簡単に言えばひとつの変数に複数の値を埋め込むことです。たとえば変数Aを配列化し、A[1]に田中さん、A[2]に鈴木さん……とやっておいて、Aを1~30まで表示、などとやるとクラスメイト全員を一行で表示することができます。
さらにおおざっぱに言えば処理の圧縮、同様の処理の簡潔化を指して配列と言います。これをExcel関数が採用するとどうなるかというと……。

Advertisements

配列数式の使い方①複数の計算を同時に実行

配列数式を作るには、関数入力後Enterの代わりにCtrl+Shift+Enterを押します。このみっつのキーの頭文字をとって、CSE数式とも呼ばれます。
とりあえずひとつのセルに対して使う場合を解説します。

式を配列数式化
Ctrl+Shift+Enter
hairetsu1
図の総売り上げを求める場合で考えます。
hairetsu2
普通にやるのであれば、売上と販売数を掛け算して、これをオートフィルで延ばし、
hairetsu3
あとは総額をすべてSum関数で合算すればオーケーです。
hairetsu4
無事に目標達成できました。
hairetsu5
では、今度は「総額」列を作らない場合で考えてみます。
hairetsu6
一行ずつ掛け算したものを足していくこともできますが、行が増えるとちょっと現実的ではありません。
hairetsu7
この場合、総売り上げに=Sum(B2:B6*C2:C6)と打ちこみますが、このままEnterを押すとエラーになります。
hairetsu8
しかしここでCtrl+Shift+Enterを押すと式が{}で囲まれ、配列数式となります。値も正しいものが表示されました。
hairetsu9
B2:C6*C2:C6というのは、B2*C2、B3*C3、B4*C4、B5*C5、B6*C6を意味し、つまり同時に5つの計算結果を得ています。しかもそれをSum関数で合算しています。
hairetsu10
通常別々の計算結果は一度作業列に表示し、
hairetsu11
その上で合算する、というのがExcelの通常動作です。配列数式を使うとこの中間地点をすっとばし、複数の計算(処理)を同時に行うことが可能となります。
hairetsu12
要は、作業列を削除する(圧縮する)ための機能です。ちょっと面倒ですが、編集するたびにCtrl+Shift+Enterを押す必要があります。

②ひとつの式を複数のセルで共有

hairetsu_b1
実用することはほぼないですが、配列数式を使うと、ひとつの数式で複数のセルをセットで計算することも可能です。配列数式のイメージを持つために知っておいてもいいかもしれません。
通常図のような場合、A2とB2とC2を掛け算し、それをコピーしますが、
hairetsu_b2
あらかじめ入力範囲を全て選択し、=A2:A4*B2:B4*C2:C4のように入力して、
hairetsu_b3
Ctrl+Shift+Enterを押すことで、A2*B2*C2、A3*B3*C3、A4*B4*C4の結果を別々のセルに得ることができます。
hairetsu_b4
この式を修正したい場合は、配列数式を入力したセルのどれかひとつを修正し、
hairetsu_b5
再度Ctrl+Shift+Enterを押すことで、セットになってる式全てが修正されます。
hairetsu_b6
もし3つのセル×3つのセル×1つのセル(数値)で実行した場合、
hairetsu_b7
これは特に問題ありません(すべての結果で20%が使われる)が、
hairetsu_b8
3×3×2つのセルだと、3つめがどれを参照していいのかわからないので、エラーになります。行はズレててもいいですが、参照するセルの数は複数の場合合わせます。
hairetsu_b9
配列数式のどこか一か所だけを削除することはできません。このようにエラーになるので、
hairetsu_b10
削除する時は、セットになっている配列数式全てを削除する必要があります。
Excel(エクセル)で使える時短ショートカット集
Excelでよく使う(あるいは人によっては役にたつ)ショートカットを集めてみました。
やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ

コメント