スプレッドシートの集計、関数で足りるかGASにするかの分かれ目

記事
IT・テクノロジー
「複数のシートを1枚にまとめたい」というとき、関数で済むこともあれば、GAS(Google Apps Script)にした方がいいこともあります。

先に結論を書きます。分かれ目は、集計そのものの難しさではありません。シートが「増えるかどうか」です。

■ 関数で足りる場合

シートの枚数と名前が決まっていて、これから増えないなら、関数で十分です。

QUERY と、複数範囲を縦に積む書き方を組み合わせれば、支店Aから支店Cまでを1枚にまとめられます。数式を1つ置くだけなので、壊れたときに直すのも簡単です。

このとき GAS を入れると、かえって面倒になります。実行ボタンを押す手間が増え、コードの置き場所を覚えておく必要も出てきます。

■ GASにした方がいい場合

次のどれかに当てはまるなら、GASを勧めます。

1つ目。シートが毎月増えます。関数だと、増えるたびに数式の中の範囲を書き足すことになります。これは必ず忘れます。GASなら「シート名が『支店』で始まるものを全部」と書けるので、増えても触らなくて済みます。

2つ目。集約するときに、元のシート名を1列目に残したい。関数でもできますが、式が長くなって読めなくなります。

3つ目。毎朝決まった時刻に自動で更新したい。これは関数ではできません。時間主導型のトリガーを使うことになります。

4つ目。集約先の見た目を整えたい。列幅、罫線、数値の書式。関数は値しか返せないので、書式は毎回手で直すことになります。

■ 判断に迷ったときの1つの質問

「来月、シートが1枚増えたら、誰かが何かを直す必要がありますか?」

直す必要があるなら、その作業は毎月発生します。半年で6回です。そこがGASにする分かれ目だと考えています。

逆に、増えないシートを1回だけまとめたいなら、関数で十分です。わざわざコードを持つ必要はありません。

■ 先に決めておくと作り直さずに済むこと

ご依頼をいただく前に、この4つが決まっていると早いです。

・集約元のシートの選び方(名前で決めるか、位置で決めるか)
・見出しの行が何行目にあるか
・集約先は毎回まっさらにするか、下に追記していくか
・元のシート名を残すかどうか

このうち3つ目でよく食い違いが起きます。「追記」だと思っていたら毎回消えていた、という事故です。最初に決めておくと、後から作り直さずに済みます。

GASでのスプレッドシート集計の自動化は、サービスとして出品しています。コード全文と設置手順をお渡しする形なので、納品後はご自身で直していただけます。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す