スプレッドシートで同じ関数を繰り返したい時に、セルの数だけ入力していては時間が無駄になってしまいます。そんな時に便利なARRAYFORMULA関数について解説します。
ARRAYFORMULA関数は同じ関数や計算式を繰り返す時、全てのセルに入力する代わりに、範囲を指定して自動的に処理を繰り返してくれる関数です。使い方は簡単ですが、知っている知らないとでは作業効率が大きく変わるとても便利な関数です。
ARRAYFORMULA関数の使い方はとても簡単です。基本構文の中に繰り返し行いたい処理を入れるだけです。
=ARRAYFORMULA(配列数式)
スプレッドシートで連番を振る方法について解説した記事の中でも利用しているのですが、セルの行や列を表示してくれるrow関数とcol関数というものがあります。
=row()
この関数を使えばそのセルの行を表示してくれるため、連番を振る時に便利です。オートフィルを使ってコピーしてもいいですが、何千行にも渡るシートの場合はそれも面倒ですし、数千のセルに関数が入っていることになり、余計な負荷がかかってしまいます。そんな時にARRAYFORMULA関数を利用することで一つのセルに入力するだけで済みます。
例えばA1からA1000まで千行に渡るセルに連番を振りたい場合は、A1のセルに下記のように入力するだけで1000行目まで自動的にセル内に数値が入ります。
=ARRAYFORMULA(ROW(A1:A1000))
次は条件で判断するifを使った時にARRAYFORMULA関数を使用してみましょう。
名前と点数に対して合否判別を行うシンプルなシートです。点数の横のセルに80点以上なら合格、そうでなければ不合格と表示させるための関数を入力します。
ARRAYFORMULA関数を使わずに、if関数だけを使った場合、人数分の合否判定を行う関数を入力する必要があります。
=IF(80=IF(80=IF(80
これが、ARRAYFORMULA関数を使用すればたった一つのセルに関数を入れるだけで同じ処理が行えます。(※ARRAYFORMULA関数によって入力されるセルは空白である必要があります。)
=arrayformula(IF(80
足し算を繰り返したい時にはSUM関数を使うことが多いですが、この時SUM関数を使うと選択範囲全体の合計値が表示されてしまいます。1列ずつ足さなければ求める結果にならない点には注意したいところです。ちなみにこの場合F4からF9のセル自体は空でF3のセルに入った計算式の結果が表示されています。
=ArrayFormula(($C3:C9+D3:D9+$E3:E9))
数式の編集中に下記のキーを押してやる事で、ARRAYFORMULA関数が補完入力されます。長くて綴りを間違えたりしがちなのでよく使う人はショートカットキーも覚えてしまいましょう。
command+shift+return(Mac)
control+shift+enter(Windows)
同じ処理を繰り返す時に便利なARRAYFORMULA関数の解説を行ってきました。作業効率を高め、スプレッドシートの負荷を減らすためにも、適時活用していきたい関数ですね。
スプレッドシートの関数については基本的なものを紹介しています。
スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。