スプレッドシートのARRAYFORMULA関数で処理を効率化

ARRAYFORMULA関数の使い方

スプレッドシートで同じ関数を繰り返したい時に、セルの数だけ入力していては時間が無駄になってしまいます。そんな時に便利なARRAYFORMULA関数について解説します。

ARRAYFORMULA関数とは

ARRAYFORMULA関数は同じ関数や計算式を繰り返す時、全てのセルに入力する代わりに、範囲を指定して自動的に処理を繰り返してくれる関数です。使い方は簡単ですが、知っている知らないとでは作業効率が大きく変わるとても便利な関数です。

ARRAYFORMULA関数のポイント
  • 一つのセルに入力することで同じ処理を繰り返すことができる
  • 処理が反映されるセルは空白にしておく必要がある
  • 一部の関数では利用できない。
  • ARRAYFORMULA関数はexcelにはない
  • 不要な関数の繰り返しを減らせるので軽くなる

ARRAYFORMULA関数の使い方

ARRAYFORMULA関数の使い方はとても簡単です。基本構文の中に繰り返し行いたい処理を入れるだけです。

=ARRAYFORMULA(配列数式)

ARRAYFORMULA関数の使用例

スプレッドシートで連番を振る方法について解説した記事の中でも利用しているのですが、セルの行や列を表示してくれるrow関数とcol関数というものがあります。

=row()

この関数を使えばそのセルの行を表示してくれるため、連番を振る時に便利です。オートフィルを使ってコピーしてもいいですが、何千行にも渡るシートの場合はそれも面倒ですし、数千のセルに関数が入っていることになり、余計な負荷がかかってしまいます。そんな時にARRAYFORMULA関数を利用することで一つのセルに入力するだけで済みます。

例えばA1からA1000まで千行に渡るセルに連番を振りたい場合は、A1のセルに下記のように入力するだけで1000行目まで自動的にセル内に数値が入ります。

=ARRAYFORMULA(ROW(A1:A1000))

arrayformulaでrow関数を使用した例

次は条件で判断するifを使った時にARRAYFORMULA関数を使用してみましょう。

名前と点数に対して合否判別を行うシンプルなシートです。点数の横のセルに80点以上なら合格、そうでなければ不合格と表示させるための関数を入力します。

ARRAYFORMULA関数でif関数を使う

ARRAYFORMULA関数を使わずに、if関数だけを使った場合、人数分の合否判定を行う関数を入力する必要があります。

=IF(80<=C3,"合格","不合格")
=IF(80<=D3,"合格","不合格")
=IF(80<=E3,"合格","不合格")

これが、ARRAYFORMULA関数を使用すればたった一つのセルに関数を入れるだけで同じ処理が行えます。(※ARRAYFORMULA関数によって入力されるセルは空白である必要があります。)

=arrayformula(IF(80<=C3:C10,"合格","不合格"))

ARRAYFORMULA関数のショートカットキー

数式の編集中に下記のキーを押してやる事で、ARRAYFORMULA関数が補完入力されます。長くて綴りを間違えたりしがちなのでよく使う人はショートカットキーも覚えてしまいましょう。

command+shift+return(Mac)
control+shift+enter(Windows)

まとめ

同じ処理を繰り返す時に便利なARRAYFORMULA関数の解説を行ってきました。作業効率を高め、スプレッドシートの負荷を減らすためにも、適時活用していきたい関数ですね。

スプレッドシートの関数については基本的なものを紹介しています。

便利な数式と関数
スプレッドシートで最初に覚えたい便利な基本関数一覧
スプレッドシートで最初に覚えると便利な使い勝手のいい基本的な関数を紹介します。

スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。

スプレッドシートの使い方完全マニュアル
スプレッドシートの使い方 完全マニュアル
スプレッドシート初心者が一通り使えるようになるまでの知識を体系的にまとめました。