複数のスプレッドシートをIMPORTRANGEで1枚に集めるなら月ごとの範囲で1本にする|1セル1本で数千本にしない設計と、「アクセスを許可」が要らない条件、展開先に手入力させない共有の仕方
複数のスプレッドシートをIMPORTRANGEで1枚に集めるなら月ごとの範囲で1本にする|1セル1本で数千本にしない設計と、「アクセスを許可」が要らない条件、展開先に手入力させない共有の仕方
店舗ごとに売上日報のスプレッドシートがあり、本部やエリアのスタッフが「全店の数字を1枚で見たい」と言い出したとき、IMPORTRANGEで各店のシートをつなぐのが定石です。ただ、つなぎ方を間違えると、開くたびに「読み込んでいます」が長く続く重いファイルになります。日付ごとに1セルずつIMPORTRANGEを書く作りがその典型で、7店舗×1年半なら式の数が約3,800本に達します。
先に結論を書きます。
- IMPORTRANGEは「店舗×月」で1本にする。 月の初日のセルに1か月分の範囲を指定した式を1つ置き、下へ展開させる。7店舗×18か月で126本に収まる
- 元の日報は「1日1行で日付が最初から並んでいる」型にそろえておく。 行番号で範囲を指定できるので、全店が同じテンプレートなら式も同じ形になる
- 式を書き込むのは人のアカウントではなく、集計用のサービスアカウントにする。 元の日報がそのアカウントに共有済みだったため、「アクセスを許可」のクリックなしで接続された
- 公開前に、自動版の全セルを元からある集計表(無ければ固定値で作った表)と突き合わせる。 月計だけでなく日別のセルまで一致を確かめ、エラーセルが0であることを見る
- 見る人には閲覧者として共有する。 展開された範囲のセルに1文字でも入力されると、その月の表示が丸ごとエラーになる
以下、名古屋のWEB制作会社graciautoが、愛知県内で20店舗以上を展開する白髪染め専門店フランチャイズの本部支援で、7店舗分の売上をスタッフ共有用の1枚にまとめたときの構成と手順を紹介します。
なぜ1セル1本のIMPORTRANGEにしないのか
最初に、式の数を見積もります。今回は2026年7月から2027年12月までの日別売上を7店舗分並べる表でした。
| 作り方 | 式の数の計算 | 式の数 |
|---|---|---|
| 1日1セルに1本ずつ | 7店舗 × 549日(2026年7月〜2027年12月) | 約3,800本 |
| 店舗×月で1本 | 7店舗 × 18か月 | 126本 |
IMPORTRANGEは1本ごとに別のファイルへ接続しに行く式です。本数が数千になると、ファイルを開いたときの再計算に時間がかかり、画面上部に読み込み中の表示が出たまま数字が埋まらない状態が起こりやすくなります。仕様として、IMPORTRANGEで取り込んだデータの再読み込みは最大で30分間隔です。つまり本数を増やしても「新しくなるのが早くなる」ことはなく、重くなるだけです。
一方で、1本の式で1か月分の範囲(約30セル)を取り込めば、接続は月ごとに1回で済みます。結果はセルの下方向へ自動で展開されるので、見た目は1日1行のまま変わりません。
もう1つ、月ごとに分ける理由があります。式を年単位で1本にすると、翌年の枠を作るときや、ある月だけ元の日報を差し替えたいときに、その1本を書き換えるだけで年間すべての表示が変わってしまいます。月単位なら、影響の範囲が1か月に閉じます。
全体の構成:年ごとのシート×店舗の列
作った表は、年ごとにシートを分け、1シートの中は次の構成にしました。
| 要素 | 内容 |
|---|---|
| 行 | 1日1行。日付・曜日を左端に置き、月末の次の行に「月合計」、年末に「年合計」 |
| 列 | 日付・曜日の次に7店舗の合計列、その右に店舗ごとの列(本部が指定した並び順) |
| シート | 「2026年」(7月1日〜12月31日)と「2027年」(1月1日〜12月31日)の2枚 |
| 数式 | 店舗の列はIMPORTRANGE、合計列・月合計・年合計はSUM |
2027年のシートにも、月ごとのIMPORTRANGEを先に置いてあります。作った時点では元の日報に2027年の数字が無いので空に見えますが、日報側に入力が始まれば自動で埋まります。翌年になって新しいファイルを作り直したり、式を足したりする必要が無いよう、式は先に入れておきます。
元データとなる各店の売上日報は、「日付・技術売上・店販売上」を1日1行で入れる型です。日報側の作り方は、美容室の売上日報はスプレッドシートの2列から始めるで書いたとおりです。今回つないだのは、その日報の「日次」タブにある合計の列です。
手順1:元の日報側の行の位置を確かめる
月ごとの範囲でIMPORTRANGEを書くには、元の日報の「どの行が何月何日か」が決まっている必要があります。今回の日報テンプレートは、2027年12月31日までの日付の行が最初から全部並んでいる作りでした。日付をスタッフが手で足していく型ではないので、行番号から日付が計算で出せます。
具体的には、日次タブの行番号は「704+(2026年1月1日からの日数)」でした。
| 日付 | 日次タブの行 |
|---|---|
| 2026年7月1日 | 885行目 |
| 2026年12月31日 | 1,068行目 |
| 2027年1月1日 | 1,069行目 |
| 2027年12月31日 | 1,433行目 |
7店舗とも同じテンプレートから作られた日報なので、行の対応は全店で共通でした。ここが店によってずれていると、式を店ごとに別々に書く羽目になります。全店集計を見据えるなら、日報のテンプレートを統一しておくことが、集計側の式を1種類に保つ前提になります。
もし日報が「日付をその都度追加する」型だったり、途中で行が挿入されたりしていると、行番号で指定した範囲が別の日を指します。その場合は、日付の列ごと取り込んで集計側で日付照合する作りに変える必要があり、式も重くなります。先に日報側の型をそろえる方が、結果として軽くなります。
手順2:月の初日のセルに範囲付きIMPORTRANGEを置く
集計表の「2026年7月1日」の行、店舗Aの列に、次の形の式を1本入れます。
=IMPORTRANGE("店舗Aの日報のURL", "日次!C885:C915")
C885が7月1日、C915が7月31日です。1本で31セル分が返り、7月2日以降のセルへ自動で展開されます。8月は「C916:C946」、9月は「C947:C976」のように、月の日数に合わせて終わりの行を変えます。
| 月(2026年) | 範囲 |
|---|---|
| 7月(31日) | C885:C915 |
| 8月(31日) | C916:C946 |
| 9月(30日) | C947:C976 |
| 10月(31日) | C977:C1007 |
| 11月(30日) | C1008:C1037 |
| 12月(31日) | C1038:C1068 |
これを7店舗分、18か月分で126本置きます。手で126本入力するのは現実的ではないので、今回はスクリプトで一括して書き込みました。店舗ごとの日報のURLと、月ごとの開始行・終了行を一覧にしておけば、式の文字列は機械的に組み立てられます。
合計列は、同じ行の7店舗を足すSUMです。月合計の行は、その月の日付の行を足すSUM、年合計はその年の月合計を足すSUMにします。IMPORTRANGEの結果に対して直接SUMをかけても問題なく動きます。
手順3:「アクセスを許可」が要らない条件
IMPORTRANGEで別のファイルを初めて参照すると、セルに「アクセスを許可」のボタンが出て、クリックするまで値が返りません。許可は「参照先のファイルごと」に必要なので、7店舗の日報をつなぐなら7回のクリックが要る、というのが通常の理解です。
今回は、この許可の操作が1回も要りませんでした。条件は次の2つです。
- 式を書き込んだのが、人のアカウントではなく、本部の集計に使っているサービスアカウント(プログラムが使う専用のGoogleアカウント)だった
- 7店舗の日報が、すべてそのサービスアカウントに以前から共有済みだった
式を書いたアカウントが参照先を読める状態であれば、許可の確認は出ずにそのまま接続されました。自動化の仕組みを持っている本部なら、同じ条件がそろっていることが多いはずです。
逆に言うと、本部の担当者が自分のアカウントで式を書いた場合は、日報が担当者本人に共有されていても、初回の許可クリックは必要です。人のクリックを前提にした手順を組むと、担当者が不在の日には集計が止まります。式の書き込みは自動化に使っているアカウントに寄せておく方が、後の手直しでも人手が要りません。
なお、集計側と元ファイルの両方に同じアカウントが編集者として入っている場合、許可の付与自体を自動で送る方法もありますが、公式に案内されている手順ではないため、ここでは条件がそろえば不要になる、という事実だけを書いておきます。
接続できたかどうかは、ボタンの有無ではなく、値で確かめます。式を入れたセルの範囲に「#REF!」が1つも無いこと、各月の初日と末日の値が元の日報の該当行と同じであることを見ます。許可の操作を人に頼む前に、まずこの確認をすると、不要な依頼が減ります。
手順4:自動版の全セルを元の集計表と突き合わせる
今回は、最初に「元の表から数字を固定値で写した版」を作って内容を確認したうえで、IMPORTRANGE版に置き換えました。置き換え後は、本部側で元からある全店集計のシートと突き合わせています。
置き換え後に確かめたのは次の項目です。
| 確認項目 | 結果 |
|---|---|
| 7〜12月の月合計(7店舗分) | 元の全店集計シートと全店一致 |
| 7月1日以降の日別の全セル | 元の全店集計シートと全セル一致 |
| エラー表示のセル | 0 |
月合計だけが合っていても、ある日の値が隣の日にずれていると、日別の表としては使えません。日別の全セルまで比べるのは手間に見えますが、スクリプトで自動版と元の集計表の両方を読んで差分を出せば、目で見比べる必要はありません。スプレッドシートの自動処理をAPIで組む際に止まりやすい点は、スプレッドシートの自動集計が途中で止まるときにまとめています。
渡し方:見る人には閲覧者として共有する理由
この表をスタッフに渡すときは、編集者ではなく閲覧者として共有します。見た目を守るためではなく、表の仕組み上の理由です。
月の初日に置いたIMPORTRANGEは、2日以降のセルへ結果を展開しています。展開先のセルは空に見えますが、ここに誰かが数字や文字を入力すると、式はそれ以上展開できなくなり、その月の表示が丸ごとエラーになります。「数字が違う気がしたので直した」という善意の入力で、1か月分が消えるわけです。
数字を直す必要があるなら、直す場所は集計表ではなく元の日報です。日報側を直せば、集計表を開いている間に再計算され、仕様上は最大30分以内に自動で追いつきます(通常はそれより早く反映されます)。入力の面は日報1枚、見る面は集計表、という役割分担を共有設定で固定しておくと、この種の問い合わせを減らせます。
本部側の担当者が編集者として入る場合も、展開範囲のセルには「警告のみ」の保護をかけておくと、うっかり入力しようとしたときに確認のメッセージが出ます。
起こりうるトラブルと、先に打っておく手
この構成で運用を続けるときに想定しておく点を挙げます。どれも事前の設計で防げるものです。
- 元の日報に行が挿入されて範囲がずれる。 行番号で指定している以上、日報側の行の構造が変わると別の日を指します。日報のテンプレートは「日付の行が最初から並んでいる」型で固定し、行の挿入や削除をしない運用にします。月に1回、集計表の月合計と日報側の月合計を見比べる習慣を入れておくと、ずれても翌月には気づけます
- 元の日報の共有が外れて「#REF!」になる。 日報のオーナーが変わったり、共有設定を整理したりしたときに起こります。日報の共有先には、個人ではなく集計用のサービスアカウント(または本部の共通アカウント)を入れておき、人の異動で共有が切れない形にします
- 翌年の式が無くて1月に止まる。 年ごとのシートにするなら、翌年分のシートと月ごとの式を前年のうちに入れておきます。今回は2027年分の式(7店舗×12か月=84本)を先に置きました
- 数字の反映が遅いと言われる。 IMPORTRANGEの再計算は、ファイルを開いている間に最大30分間隔で行われる仕様です。「今入力したのに出ない」という問い合わせには、仕様として先に伝えておきます。即時性が必要なら、集計表で見るのではなく日報側を直接見てもらいます
同じ「元データは触らず、別ファイルで読む」考え方は、発注の記録を月ごとにまとめる表にも使えます。そちらは元データが1つの発注ログなので、IMPORTRANGEは1本で済みます。作り方は発注の記録を月別に集計する表は元のシートと分けて作るに書きました。
まとめ
- 複数店舗の日報を1枚に集めるIMPORTRANGEは「店舗×月」で1本にする。7店舗×18か月で126本。1セル1本だと約3,800本になり、開くたびに重くなる
- 元の日報は1日1行で日付が最初から並ぶ型にそろえ、行番号で月の範囲を指定する(今回は「704+2026年1月1日からの日数」が行番号)
- 式の書き込みは集計用のサービスアカウントで行う。参照先がそのアカウントに共有済みなら「アクセスを許可」のクリックは不要だった
- 接続の確認はボタンではなく値で行う。#REF!が無いこと、初日と末日の値が元と同じことを見る
- 固定値版で内容を確認してから自動版に置き換え、元の全店集計シートと月合計・日別全セル・エラー0で突き合わせる
- 見る人には閲覧者で共有する。展開先のセルに入力されると1か月分がエラーになるため、直すのは元の日報側と決める
- 行の挿入・共有切れ・翌年の枠・30分の更新間隔を、運用に入る前に伝えておく
多店舗の売上を集める表は、式の本数を減らすほど軽く、壊れにくくなります。graciautoでは、店舗ごとの日報設計から本部側の全店集計、店舗ごとの月次レポート作成の自動化までを一貫して支援しています。各店の数字が別々のファイルに散っていて、月初に集めるだけで時間がかかっている段階でしたら、まず元の日報の型をそろえるところからご相談ください。