
スプレッドシートで日々の業務を行う中で、
「この列全体に同じ計算式を適用したい」
「新しいデータが追加されたら自動で計算してほしい」
と感じたことはありませんか?
そんな時に活躍するのが、スプレッドシートのARRAYFORMULA関数です。
ARRAYFORMULA関数とは、「1つのセルに関数を入力するだけで、指定した列全体に関数を自動的に適用できる関数」です。
MASAARRAYFORMULA関数を使えば、毎回関数をコピー&ペーストやオートフィルする必要が無くなります!
ARRAYFORMULA関数を使えば、以下のようなメリットが得られます。
- 入力の手間を大幅削減: 最初の1セルに関数を入力するだけでOK。
- 計算ミスの防止: 関数が自動適用されるため、入力漏れやコピーミスがなくなる。
- データの更新に強い: 新しい行が追加されても、自動的に計算結果が表示される。
この記事では、
- ARRAYFORMULA関数の基本的な使い方
- ARRAYFORMULA関数の応用的な使い方
について解説していきます。
ぜひとも最後までご覧ください。
自動化出来る作業をまだ手作業でこなしていませんか?
私は、Googleが提供するプログラミングツールである、GAS(Google App Script)を活用して面倒なスプレッドシート業務を自動化や効率化するサービスを提供しています。
もし今の業務の中で
- 毎回の手作業に手間を感じる
- もっと業務を効率化したい
- ルーティン業務を自動化したい
このような不満を抱えてらっしゃるなら是非一度ご連絡ください。
MASA「こんなことできる?」くらい軽めのご相談でも大歓迎です!
ARRAYFORMULA関数の基本的な使い方
それではここからは、ARRAYFORMULA関数の基本的な使い方について解説していきます。
ARRAYFORMULA関数は特定の列で実行すれば、基本的にその列全体に同じ関数を適用させる事が出来ます。
しかし推奨されるのは列の一番上です。
使い方はとても簡単です。
=ARRAYFORMULA(この中で関数を実行)
これだけです。
例えば、
「60点以上であれば、「合格」、それ以下なら不合格」
という関数をIF関数を使って実行したいとします。
列は、「点数」「評価」という列を作ります。
MASAもしIF関数がわからないと言う方はこちらの記事をご参照ください!

この場合は、「評価」の列で、
=IF(A2:A>=60, "合格", "不合格")
と書きます。
列全体にこちらのIF関数を適用したかったら、このIF関数をARRAYFORMULA関数に入れるだけです。
つまり
=ARRAYFORMULA(IF(A2:A>=60, "合格", "不合格"))
これだけです。
これをだけで列全体に関数が適用されます。
しかし実はこちらをこのまま実行すると、、

この様に、まだ「点数」の行が記述されてない箇所にもIF関数が適用されます。
そこでここからは、まだ記述されてない行は何も関数が実行されない様にしたいと思います。
MASAARRAYFORMULA関数の少し応用的な使い方です!
ARRAYFORMULA関数の応用的な使い方
ここからはARRAYFORMULA関数の応用的な使い方である、まだ実行する必要がないセルではARRAYFORMULA関数を実行しない方法について解説します。
結論としては、ここでもIF関数を使うことになります。
書き方はこうです。
=ARRAYFORMULA(IF(A2:A="", "",(実行したい関数)))
IF関数は、
=IF(論理式, 真の場合, 偽の場合)
この様に使います。
つまり、
A列が空(真の場合)だったら、何も記入しない("")。
A列に記述があれば(偽の場合)、(実行したい関数)を実行する
と書けば解決です。
つまりこうです。
=ARRAYFORMULA(IF(A2:A="", "",IF(A2:A>=60, "合格", "不合格")))

こちらで実行してみると

この様に、まだ「点数」の列に何も入力していない行では、「評価」の列で何も入力されません。
さらに「点数」の列の何も記入していない行に記入をすると、

この様に自動で「評価」の列に結果が入力されます。
MASAこれで完全に「ARRAYFORMULA関数」を使いこなしましたね!
まとめ
ここまでARRAYFORMULA関数を使って列全体に関数を適用する方法について解説してきました。
ARRAYFORMULA関数を使えば列全体に関数を適用させる事が出来ますが、ARRAYFORMULA関数だけでは意図しないセルにも自動で関数が実行されます。
IF関数とARRAYFORMULA関数を組み合わせる事で、関数を実行したいセルにだけ入力が自動で実行される様にしましょう。
この記事を読んであなたの業務の負担が少しでも楽になれば幸いです。
私はGoogleが提供するプログラミングツールである、GAS(Google App Script)を活用して面倒なスプレッドシート業務を自動化や効率化するサービスを提供しています。
もし今の業務の中で
- 毎回の手作業に手間を感じる
- もっと業務を効率化したい
- ルーティン業務を自動化したい
このような不満を抱えてらっしゃるなら是非一度ご連絡ください。
MASA「こんなことできる?」くらい軽めのご相談でも大歓迎です!