2014年3月1日土曜日

Google スプレッドシートで「配列数式」を使うメリットは、「行」を追加した場合、自動的に再計算がされること。下方向へのコピーを自動で行なってくれるようなもの。

1. 配列数式を多用すると保守しにくい

これまで、「配列を返すカスタム関数」、「配列数式に置きかえるための ARRAYFORMUAL 関数」「行列の積」のように「複数行を計算結果として返す関数」を見てきた。

「数式の繰り返し」を「配列数式」で置き換えると、数式が複雑になる。カスタム関数は、元の関数をラップする関数が必要となる。そのため、保守まで考えると乱用したくない。

加えて、2013年12月以前の Google スプレッドシートでは、配列数式を用いると処理できる計算が多くなった。しかし、現在のバージョンでは、計算できる処理量に差がないように見える。

 

2. 配列数式のメリット

それでも、配列数式を用いるメリットはある。それは、

  1. 配列数式を用いると、シートの行が足りなくなり「行を追加する」と、行が増えた分だけ自動で再計算を行なってくれること。
  2. そのため、前行の数式を手作業で「下方向へコピー」する手間が省ける。
  3. また、配列数式を入力した行以外では、誤って式を消したり、変更されたりする心配がない。

以下の例で説明する。

 

a. 手動で数式を下方向へコピーする場合

例えば、「配列数式」を使わずに、行を追加する度に数式を下方向へコピーする場合。

SnapCrab_No-0811

最初に「行」を追加する。次に、「下方向へコピー」したいセルを選択する。

SnapCrab_No-0812

そして、下方向へのコピーを行わなければならない。

SnapCrab_No-0813

「下方向へコピーしたセル」は数式なので、誤って消してしまったり、意図せず誤入力をしてデータを壊してしまうことがある。

 

b. 「配列数式」を利用する場合

これに対して、配列数式の場合は、行を追加した後、再計算が行われ、自動的にセルに値が入力される。

以下のように、行を追加すると、「処理中」と通知が出た後、計算が必要なセルに自動的に値が入力される。

SnapCrab_No-0815

ただし、これは配列数式の呼び出しで、計算を行う範囲が適切に指定されていることによる。

その後、計算元となる値をセルに入力していくと、すぐに再計算が行われる。

SnapCrab_No-0816

自動的に入力されたセルは、誤って消したり、誤入力をしても、再計算が行われ元のデータに戻る。