GoogleスプレッドシートでARRAYFORMULA関数を使う

スプレッドシート

ARRAYFORMULA関数とは

引数に範囲や、範囲を含む式を指定して戻り値を配列として返す関数です。

うまく理解できないかもしれませんが、簡単にいうとARRAYFORMULA関数を含む一つの計算式で、複数行・複数列に一瞬で値を入力することができます。

いくつものセルに数式を入力しなくて良くなり、表示速度も早くなるなど効率化に繋がります。

構文

=ARRAYFORMULA(配列数式)

これだけ見ても「?」という人も多いと思います。
一度簡単な例で見てみましょう。

今回は下図のデータを使用します。

上図データでB列のデータをC列にコピーする場合、皆さんはどのようにしているでしょうか?

このぐらいのデータであれば下図のように選択してコピーされていると思います。

これが何行にもなるデータであった場合は選択するのが面倒であったり選択間違いが起こる可能性がります。

ARRAYFORMULA関数を使うことで素早くかつ正確に対応できます。

では見てみましょう。

ARRAYFORMULA関数を入力しB列のデータをC列に表示させて見ます。C2セルに入力されている式は下記になります。

C2セル以降にB2セル以降のデータが表示されているはずです。
一連の動きを見てみましょう

見ていただいた通りC列に一度に表示できて便利に感じられたと思います。

ただしこの関数を使うときには注意が必要です。

C2セルにARRAYFORMULA関数を入力してC2セル以降にB2セル以降のデータを表示させているのでC3セル以降に新しいデータを入力または表示されている内容を修正してしまうとエラーが起こります。

試しにC3セルに表示されている内容を消して「1」を入力してみます。
下記を確認してみましょう。

このような特性を理解してARRAYFORMULA関数を使っていきましょう。

応用

もちろんARRAYFORMULA関数の中に関数を入れて使用することも可能です。

今回はARRAYFORMULA関数とSPLIT関数を使ってC列に「姓」、D列に「名」を表示してみます。

B列に入力されている氏名データは「姓」と「名」の間に半角スペースが入力されています。

まずはC2セルとD2セルにB2セルの氏名データからSPLIT関数を使用して「姓」のみを表示させてみます。

C2セルに入力される関数は下記になります。

C2セルとD2セルにB2セルに入力されている氏名が「姓」と「名」に分割されて表示されていると思います。

更にC2セルに入力されている関数にARRAYFORMULA関数組み合わせてC2セル・D2セル以降のC列・D列にも「姓」と「名」を分割して表示させていきます。

このときに注意が必要なのが、ARRAYFORMULA関数は範囲を指定する必要があるということです。

ですのでSPLIT関数の入力内容が単一セルではなく範囲セルにする必要が出てきます。

C2セルに入力される関数は下記になります。

SPLIT関数内の単一セル(B2)を範囲指定(B2:B11)に変更しARRAYFORMULA関数を適用します。

一連の動きを見てみましょう。

このように単一セルから複数範囲指定にすることによってARRAYFORMULA関数と他の関数を組み合わせて効率的に表示させることができます。

単一セル指定関数にARRAYFORMULA関数を組合わせる場合にそのまま直接入力するのは手間がかかるのでショートカットキーを使うと便利です。

ショートカットキー:Ctrl+Shift+Enter

関数が入力されている状態で上記ショートカットキーを押すとARRAYFORMULA関数が入力されます。

一度他の関数でも試してみてARRAYFORMULA関数の便利さを体験してみてください。

コメント

タイトルとURLをコピーしました