スプレッドシート

スプレッドシートのArrayFormula関数の使い方

膨大なデータを入力したスプレッドシートって表示が重くて処理も遅い…そんなお悩みをお持ちのあなたにちょっとしたアドバイスです。
ArrayFormula関数を使えば簡単に高速化でき、シートの作成・運用効率が上がります。

ArrayFormulaの読み方

ArrayFormulaと書いて「アレイフォーミュラ」と読みます。

ArrayFormulaとは?

googleスプレッドシートのヘルプ抜粋

ARRAYFORMULA(A1:C1+A2:C2)

概要

配列数式から返された値を複数行または複数列に表示したり、非配列関数で配列を使用したりすることができます。

配列数式

1 つの範囲か、1 つのセル範囲または同じサイズの複数範囲を使用する数式か、1 つのセルより大きいの結果を返す関数です。

うーん…わかりにくい。以下にまとめます。

ArrayFormulaの使い方

使ってみて慣れましょう。そのほうが私は理解が早かったので。

ArrayFormulaの見本

=ArrayFormula(IF(B2:B>5,”○”,”×”))

上記の数式を「×」が記載してある右側の一番上のセルに入力してあります。
左側の列に1〜10の数字が縦に入ったセルがあるのですが、IF関数で5以下のものは「×」、5以上のものは「○」と表示する数式を入力しています。
そのIF関数の先頭にArrayFormula関数をくっ付けることで、下に向かって範囲指定してあるセルまで一気に計算しますよ。というものがArrayFormula関数です。

要は計算したい関数にArrayFormulaを付けることで下まで一緒に計算することができる関数です。
2〜10の右側のセルには一切数式を入れていません。でも、「○」と「×」が表示されていますね。

ArrayFomulaを使った数式の簡単な作り方

まず計算したいセルに数式を入れます。上で説明に使ったシートで言うと

=IF(B2>5,”○”,”×”)

です。

数式を入れたら「Ctrl+Shift+Enter」キーを同時押しするとArrayFormula関数が出てきます。便利なショートカットキーです。
うまくいかない場合は手入力しましょう。

=ArrayFormula(IF(B2>5,”○”,”×”))

こうなったはずです。ただ、これではまだ下の方に計算結果が表示されません。

=ArrayFormula(IF(B2>5,”○”,”×”))
↓以下のように計算したい範囲を指定してください。
=ArrayFormula(IF(B2:B>5,”○”,”×”))

これで指定した範囲まで計算が表示されたはずです。
もちろん「B2:B」を「B2:B11」にすると綺麗に計算範囲を絞ることができます。
しかし、「B2:B」のように範囲を指定することでB列の下まで全て計算させることができます。何が良いかと言うと今後下に行が増えていったとしてもArrayFormulaで自動計算することが可能です。便利ですね。いちいち計算式を入力する都度入れる必要がありません。

ArrayFormulaを使うときのコツ

  1. 計算したい列の一番上のセルに計算したい数式を入れる
  2. 「Ctrl+Shift+Enter」でArrayFormulaを出現させる
  3. 計算範囲を指定し直す

この流れで入力すればわかりやすく、速く計算式を入力することができるかと思います。

ちなみにMacの場合のショートカットは「Command+Shift+Enter」ですので覚えておきましょう。

まとめ

一度使うと病みつきになって多用したくなるArrayFormula関数ですが、「Sumif」関数のような配列数式にはうまく使用できません。
この記事を読んで使い方をマスターした人は必ず使いまくると思いますのでショートカットキーを覚えておきましょう。
セルに入力する関数の数が純粋に減りますので、スプレッドシートの処理速度・表示速度も向上します。
この関数はExcelには存在せず、スプレッドシートにのみ存在する関数です。その他にも、スプレッドシートにしか使用できない関数が山ほどありますので調べてみてはいかがでしょうか。
「やっぱ今の時代はスプレッドシートでしょ」と言わんばかりの便利さが体感できること間違いなしです。
私はスプレッドシートを使い始めてから便利さに見出され、Excelをほとんど使用しなくなりました。

便利で高速なスプレッドシートライフを是非あなたにも。