「複数のシートを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でのスプレッドシート集計の自動化は、サービスとして出品しています。コード全文と設置手順をお渡しする形なので、納品後はご自身で直していただけます。