先に結論を書きます。
表の中で計算したり、表示したりするだけなら「関数」。
表の外に何かをしたり、決まった時間に動かしたりしたいなら「GAS(ガス)」。
このあと、それぞれの特徴と、迷ったときに答えるだけで決まる3つの質問を紹介します。GASそのものが初めての方は、先に「GAS(ガス)ってなに?」を読むとわかりやすくなります。
関数とは:セルの中に「答え」を出すもの
関数は、セルに =SUM(D2:D100) のように入力して使います。合計、件数、平均、条件に合うものの抜き出しなど、計算した結果が、入力したそのセルに表示されます。
元のデータが変わると、結果も自動で計算し直されます。特別な準備はいらず、承認の画面も出ません。スプレッドシートでもExcelでも使えます。
一方で、関数ができるのは「そのセルに答えを出す」ことまでです。メールを送る、別のファイルに書き込む、カレンダーに予定を入れる、といったことはできません。
GASとは:決まった「手順」を実行するもの
GASは、「表を読む → 集計する → メールで送る」のような手順を、そのとおりに実行します。表の外にあるGmail、Googleカレンダー、Googleチャット、別のスプレッドシートなどにも手を伸ばせます。
さらに、「毎朝8時ごろ」「フォームに回答が来たら」のように、決まったきっかけで自動で動かせるのも、関数にはない特徴です。
そのかわり、最初に承認の手続きが必要だったり、動かなかったときに原因を探す手間があったりと、関数よりは少しだけ準備がいります。なお、GASはGoogleのサービス用です。Excelのファイルは動かせません。
違いを表で比べると
| 関数 | GAS(ガス) | |
|---|---|---|
| できること | セルの中で計算・表示する | 手順を実行する。表の外(メール・カレンダー・チャットなど)にも手が届く |
| 動くタイミング | データが変わったとき、自動で計算し直す | ボタンを押したとき、決まった時間、フォームの回答など、決めたきっかけで |
| 使える場所 | スプレッドシート・Excel | Googleのサービス(スプレッドシート、Gmail、カレンダーなど) |
| 始める準備 | セルに入力するだけ | コードを貼り付けて、最初に承認する |
| 向いている例 | 店舗ごとの合計、条件に合う件数、商品コードから価格を探す | 集計結果を毎朝メールで送る、シフトをカレンダーに登録する |
迷ったときの3つの質問
次の3つに答えてみてください。1つでも「はい」があれば、GASの出番です。すべて「いいえ」なら、関数で十分です。
- 結果を、表の外に出したいですか?
メールで送る、チャットに知らせる、カレンダーに入れる、別のファイルにまとめる、など。 - 決まった時間や、何かが起きたときに、自動で動かしたいですか?
毎朝、毎週月曜、フォームに回答が来たとき、など。 - 表そのものを書き換えたいですか?
古い行を消す、別のシートに写して保存する、シートを毎月新しく作る、など。関数は「答えを表示する」だけで、元の表を書き換えることはできません。
両方を組み合わせるのもあり
関数とGASは、どちらか一方を選ぶものではありません。たとえば、集計は関数でシートに出しておき、その結果をGASが毎朝メールで送る、という分け方もよく使います。集計の式はシートの上で目で確かめられるので、数字がおかしいときに原因を見つけやすくなります。
迷ったら、まず関数で済まないかを考えるのがおすすめです。関数のほうが準備が少なく、壊れにくいからです。
わたしの場合
わたしが最初に作った「スプレッドシートのシフト表を、Googleカレンダーに自動で入れるツール」は、関数ではできないことでした。関数はセルの中に答えを出せても、カレンダーに予定を書き込むことはできないからです。3つの質問でいうと、1つ目の「表の外に出したい」に当てはまります。
「やりたいことが表の中で終わるか、外に出るか」。この見分け方を知ってから、どちらで作るかで迷うことがなくなりました。
まとめ
- 表の中で計算・表示するだけなら関数。表の外に出す・自動で動かす・表を書き換えるならGAS
- 迷ったら3つの質問に答える。1つでも「はい」ならGAS
- 集計は関数、送るのはGAS、という組み合わせも便利