スプレッドシートが重いを「設計」で直す|消すべき数式と、残していい手入力
不要行の削除やキャッシュ削除を試してもまた重くなるなら、原因はTipsで直る側ではなく設計側にあります。IMPORTRANGEの多用、入力シートと集計シートの混在、揮発性関数の使い方を切り分け、どこまで自動化してどこを手入力に残すかまで整理します。
この記事で答えること
スプレッドシートが重くて仕事が止まっている原因と、再発しない直し方を知りたい。その疑問に答えます。
この記事のポイント
- 不要行の削除やブラウザ側の対処で直るのは、重さの一部だけ。
- 同じシートがまた重くなるなら、原因はファイルではなく作りにある。
- 入力と集計を同じシートに置く、IMPORTRANGEで芋づるにつなぐ、の2つが再発の主犯になりやすい。
- 全部を自動化しないほうが軽い場面もある。手入力に戻す判断も設計のうち。
まず、Tipsで直るのかを切り分ける
「スプレッドシート 重い」で調べると、不要な行と列を削除する、画像を減らす、条件付き書式を整理する、キャッシュを消す、といった対処が並びます。これらは間違っていませんし、実際に効くこともあります。
ただ、これらで直るのは「1回きりの汚れ」です。掃除したのに数週間後にまた重くなるなら、掃除の対象ではなく、汚れが溜まる作りのほうを疑ったほうが早いです。
切り分けは簡単で、症状の出方を見ます。特定の1シートだけ遅いのか、ファイル全体が開かないのか、他の人が編集している時だけ遅いのか。ここで原因の当たりがかなり絞れます。
| 症状 | たぶんTipsで直る | 設計を疑ったほうがよい |
|---|---|---|
| 開くのに時間がかかる | 使っていない行・列・画像・書式が大量に残っている | 他ファイルからの取り込みが多段になっている |
| 特定のシートだけ固まる | そのシートに条件付き書式が広範囲にかかっている | そのシートが入力と集計を兼ねている |
| セルを1つ直すと全体が待たされる | — | 揮発性関数や全列参照で、毎回シート全体が再計算されている |
| 人が増えると遅くなる | — | 同じシートを複数人が同時に編集する前提になっていない |
| 掃除したのにまた重くなる | — | 重くなる作りが直っていない。データの増え方が設計に入っていない |
入力と集計を同じシートに置かない
重いシートを開くと、たいてい1枚のシートの中に、手入力する列と、その隣に計算列と、右のほうに集計表とグラフが同居しています。作った時は便利なのですが、これは構造的に重くなります。
理由は、入力するたびに同じシート内の計算が走るからです。しかも集計側は範囲を広めに取っていることが多いので、1セル直すだけで広い範囲の再計算が発生します。人が増えるほど、この再計算が重なります。
分け方は、入力(ローデータ)・計算・表示の3枚にするのが基本です。入力シートには数式を置かず、ひたすら1行1件で貯める。計算シートで必要な形に整える。表示シートは見るだけにする。これだけで、入力時の体感がかなり変わります。
副次的な効果として、入力シートに数式が無いと、コピー&ペーストで数式を壊す事故が減ります。現場が壊すのではなく、壊せる作りになっていただけ、という場合が多いです。
営業の案件管理シートは、この入力側にあたります。列を絞って毎日触れる形にする組み方は営業の案件管理シートを1枚で回すに書きました。
3枚に分けたあと、表示側をどう組むかはBIツールなしで経営ダッシュボードを作る—スプレッドシートだけで始める見える化にまとめています。
IMPORTRANGEを減らす
別ファイルの数字を持ってきたいとき、IMPORTRANGEは手軽です。ただ、これが増えると重さの原因になりやすい関数でもあります。
問題になるのは数そのものより、つながり方です。AがBを取り込み、BがCを取り込み、CはさらにDから取り込んでいる、という多段構成になると、末端の1ファイルが更新されるたびに上流が順番に待たされます。どこが遅いのかも分かりにくくなります。
現実的な直し方は3つです。1つ目は、取り込みを1段に揃えること。取り込み元はすべて同じ階層に置き、Aから直接引く。2つ目は、必要な列だけを取り込むこと。シート全体を持ってきて手元で絞るのではなく、取り込み元にあらかじめ「渡す用」の範囲を作ります。3つ目は、そもそも別ファイルに分ける必要があるかを見直すことです。権限を分けたいという理由が無いなら、1ファイル内のシート分けで済みます。
更新頻度の低いデータ、たとえば月次で確定する数字や、年に数回しか変わらないマスタは、取り込みを常時つなぎっぱなしにせず、確定したタイミングで値として貼り付けるほうが軽く、事故も減ります。
出典・一次情報:データの参照を最適化してスプレッドシートのパフォーマンスを上げる(Google ドキュメント エディタ ヘルプ)。IMPORTRANGEはスプレッドシート間の参照にインターネットを使うため、同じファイル内での参照よりも遅くなること、参照チェーンはシートの動作を遅くすること、SUM(A:A)のような非限定範囲の参照は空白セルを含めて読み込まれることが、いずれも公式ヘルプに記載されています。仕様は変更されます。最新の情報は公表元でご確認ください。
| やりがちな作り | 起きること | 置き換え |
|---|---|---|
| IMPORTRANGEが多段(A←B←C) | 末端の更新を上流が待つ。遅い箇所が特定できない | 取り込みは1段まで。参照元を同じ階層に揃える |
| シート全体を取り込んで手元で絞る | 使わない列まで毎回運ばれる | 取り込み元に「渡す用」の範囲を作り、必要な列だけ渡す |
| 1セルずつ数式をコピーして全行に敷く | 行が増えるほど数式の本数が増える | 1つのARRAYFORMULAで列ごとまとめる |
| A:Aのような全列参照 | 空行まで毎回計算対象になる | 使う範囲を明示するか、集計側をQUERYで一本化する |
| 確定済みの過去データも数式で持つ | 変わらない数字を毎回計算し続ける | 締めたら値として固定し、数式を外す |
自動化しないで手入力に残す判断
重さの相談で意外と多いのが、自動化しすぎているケースです。すべての列を数式で埋めた結果、月に1回しか変わらない値のために、毎回シート全体が計算されている。この状態は、手で入れたほうが軽くて速いです。
判断の目安は、更新頻度と、間違えたときの気づきやすさです。頻繁に変わって人が追えないものは自動化する価値があります。逆に、めったに変わらないもの、変わるときに必ず人が判断するもの、間違っても誰も気づけないものは、手入力のほうが安全な場合があります。
とくに、確定した過去のデータを数式のままにしておく理由はほとんどありません。月次で締めたら、その月の集計結果は値に変換して固定する。これだけで、月を追うごとに重くなる現象は止まります。
「自動化=善」ではなく、毎日変わるものを自動化して、変わらないものは固定する。この線引きが、結果として一番軽くなります。
直す順番
一度に全部やろうとすると、途中で数字が合わなくなって戻せなくなります。順番があります。
最初にファイルの複製を取ります。次に、掃除で直る分(使っていない行・列、広すぎる条件付き書式、貼りっぱなしの画像)を片づけて、どこまで軽くなったかを見ます。ここで十分なら、設計に手を入れる必要はありません。
それでも重いなら、入力・計算・表示の3枚に分けます。ここが一番効きますが、参照の張り替えが発生するので、分けた直後に必ず主要な数字を旧ファイルと突き合わせてください。合っていることを確認してから、IMPORTRANGEの整理と、過去データの値固定に進みます。
最後に、次に重くなる条件を決めておきます。行数がどこまで増えたら年度で分けるのか、履歴をどこまで残すのか。ここを決めていないシートは、直しても半年後に同じ状態になります。
よくある質問
不要な行を消しても、しばらくするとまた重くなるのはなぜですか?
不要な行・列の削除や画像・条件付き書式の整理で直るのは「1回きりの汚れ」だからです。掃除したのに数週間後にまた重くなるなら、汚れが溜まる作りのほう、つまり設計側を疑ったほうが早いです。再発の主犯になりやすいのは、入力と集計を同じシートに置いていることと、IMPORTRANGEで芋づる式につないでいることの2つです。特定の1シートだけ遅いのか、人が増えると遅いのかなど、症状の出方を見ると原因の当たりが絞れます。
IMPORTRANGEはどのくらいまで使っていいですか?
問題になるのは数そのものより、つながり方です。AがBを取り込み、BがCを取り込む多段構成になると、末端の1ファイルが更新されるたびに上流が順番に待たされ、どこが遅いのかも分からなくなります。直し方は3つで、取り込みは1段に揃える、取り込み元に「渡す用」の範囲を作って必要な列だけ渡す、そもそも別ファイルに分ける必要があるかを見直す。月次で確定する数字や年に数回しか変わらないマスタは、つなぎっぱなしにせず値として貼り付けるほうが軽く、事故も減ります。
重いシートは、どこから手をつければいいですか?
順番があります。最初にファイルの複製を取り、次に掃除で直る分(使っていない行・列、広すぎる条件付き書式、貼りっぱなしの画像)を片づけてどこまで軽くなったかを見ます。ここで十分なら設計に手を入れる必要はありません。それでも重いなら、入力・計算・表示の3枚に分けます。ここが一番効きますが参照の張り替えが発生するので、分けた直後に主要な数字を旧ファイルと突き合わせてください。そのあとIMPORTRANGEの整理と過去データの値固定に進み、最後に「次に重くなる条件」を決めておきます。
導入前のチェックリスト
SalesDockでできること
業務改善ロードマップ(無料資料)を受け取る
「スプレッドシート 重い 対策」の上位は不要行削除・画像圧縮・ブラウザ設定といったTipsの羅列で、なぜ同じシートが繰り返し重くなるのかという設計起因の切り分けが書かれていない。SalesDockは重くなったシートを作り直す側なので、Tipsで直る範囲と直らない範囲を分けて書ける。 単体のツール選定だけで終わらせず、現場で使う業務の流れまで一緒に整えます。
詳しく見る関連記事
泉 款太(いずみ かんた)
株式会社SalesDock 代表取締役
慶應義塾大学法学部卒。スタートアップ、ラクスル、リクルート(SUUMO)を経て2025年に独立。 中小企業の経営・営業・業務・データをつなぐ事業基盤の設計と実装を支援。 不動産・製造業・クリニックを中心に30社以上の業務改善に携わる。
代表メッセージを読む →