プログラムにおける「配列」というのは、簡単に言えばひとつの変数に複数の値を埋め込むことです。たとえば変数Aを配列化し、A[1]に田中さん、A[2]に鈴木さん……とやっておいて、Aを1~30まで表示、などとやるとクラスメイト全員を一行で表示することができます。
さらにおおざっぱに言えば処理の圧縮、同様の処理の簡潔化を指して配列と言います。これをExcel関数が採用するとどうなるかというと……。
配列数式の使い方①複数の計算を同時に実行
配列数式を作るには、関数入力後Enterの代わりにCtrl+Shift+Enterを押します。このみっつのキーの頭文字をとって、CSE数式とも呼ばれます。
とりあえずひとつのセルに対して使う場合を解説します。
式を配列数式化
Ctrl+Shift+Enter
Ctrl+Shift+Enter
![hairetsu1](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu1.jpg)
図の総売り上げを求める場合で考えます。
![hairetsu2](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu2.jpg)
普通にやるのであれば、売上と販売数を掛け算して、これをオートフィルで延ばし、
![hairetsu3](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu3.jpg)
あとは総額をすべてSum関数で合算すればオーケーです。
![hairetsu4](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu4.jpg)
無事に目標達成できました。
![hairetsu5](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu5.jpg)
では、今度は「総額」列を作らない場合で考えてみます。
![hairetsu6](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu6.jpg)
一行ずつ掛け算したものを足していくこともできますが、行が増えるとちょっと現実的ではありません。
![hairetsu7](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu7.jpg)
この場合、総売り上げに=Sum(B2:B6*C2:C6)と打ちこみますが、このままEnterを押すとエラーになります。
![hairetsu8](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu8.jpg)
しかしここでCtrl+Shift+Enterを押すと式が{}で囲まれ、配列数式となります。値も正しいものが表示されました。
![hairetsu9](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu9.jpg)
B2:C6*C2:C6というのは、B2*C2、B3*C3、B4*C4、B5*C5、B6*C6を意味し、つまり同時に5つの計算結果を得ています。しかもそれをSum関数で合算しています。
![hairetsu10](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu10.jpg)
通常別々の計算結果は一度作業列に表示し、
![hairetsu11](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu11.jpg)
その上で合算する、というのがExcelの通常動作です。配列数式を使うとこの中間地点をすっとばし、複数の計算(処理)を同時に行うことが可能となります。
![hairetsu12](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu12.jpg)
要は、作業列を削除する(圧縮する)ための機能です。ちょっと面倒ですが、編集するたびにCtrl+Shift+Enterを押す必要があります。
②ひとつの式を複数のセルで共有
![hairetsu_b1](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b1.jpg)
実用することはほぼないですが、配列数式を使うと、ひとつの数式で複数のセルをセットで計算することも可能です。配列数式のイメージを持つために知っておいてもいいかもしれません。
通常図のような場合、A2とB2とC2を掛け算し、それをコピーしますが、
通常図のような場合、A2とB2とC2を掛け算し、それをコピーしますが、
![hairetsu_b2](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b2.jpg)
あらかじめ入力範囲を全て選択し、=A2:A4*B2:B4*C2:C4のように入力して、
![hairetsu_b3](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b3.jpg)
Ctrl+Shift+Enterを押すことで、A2*B2*C2、A3*B3*C3、A4*B4*C4の結果を別々のセルに得ることができます。
![hairetsu_b4](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b4.jpg)
この式を修正したい場合は、配列数式を入力したセルのどれかひとつを修正し、
![hairetsu_b5](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b5.jpg)
再度Ctrl+Shift+Enterを押すことで、セットになってる式全てが修正されます。
![hairetsu_b6](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b6.jpg)
もし3つのセル×3つのセル×1つのセル(数値)で実行した場合、
![hairetsu_b7](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b7.jpg)
これは特に問題ありません(すべての結果で20%が使われる)が、
![hairetsu_b8](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b8.jpg)
3×3×2つのセルだと、3つめがどれを参照していいのかわからないので、エラーになります。行はズレててもいいですが、参照するセルの数は複数の場合合わせます。
![hairetsu_b9](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b9.jpg)
配列数式のどこか一か所だけを削除することはできません。このようにエラーになるので、
![hairetsu_b10](https://sunagitsune.com/wp-content/uploads/2020/05/hairetsu_b10.jpg)
削除する時は、セットになっている配列数式全てを削除する必要があります。
![](https://sunagitsune.com/wp-content/uploads/2020/01/workplace-2303849_1280-160x90.jpg)
Excel(エクセル)で使える時短ショートカット集
Excelでよく使う(あるいは人によっては役にたつ)ショートカットを集めてみました。
![](https://sunagitsune.com/wp-content/uploads/2018/10/gui-2311261_1280.png)
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
コメント