「セルに入力してから反映されるまで、何秒も待たされる…」 「スクロールするたびにカクカクして、仕事にならない…」
そんなお悩み、ありませんか?今回は、Googleスプレッドシートが重い・固まるときに試すべき対処法を、すぐできるものから本格的な対策まで、7つ紹介していきます。
リュージと、茶色いポメラニアン・チョコの会話を通して、原因を一つずつ見つけていきます!
なんでスプレッドシートって重くなるの?
リュージ、仕事で使ってるスプレッドシート、最近セルに文字を打ち込んでから反映されるまで、すごく時間がかかるんだよね…
それはストレスだね…。実は、スプレッドシートが重くなる原因はいくつかあって、大抵はそのシートの「健康状態」に問題があることが多いんだ
パソコンのスペックが悪いのかと思ってた…
スプレッドシートの計算処理は、実はパソコンではなくGoogleのサーバー側で行われているんだ。だから、パソコンを買い替える前に、まずはシートそのものを見直してみる価値があるよ

Googleスプレッドシートの計算処理は、パソコン本体ではなくGoogleのサーバー側で行われている。そのため、動作が重い原因の多くは、パソコンのスペック不足よりも、シート自体の「作り」に起因していることが多い。データ量、関数の使い方、書式設定など、複合的な要因が絡み合って動作を遅くしているケースがほとんどであるため、原因を一つずつ切り分けて対処することが重要である。
①不要な行・列・シートを削除する
まず何から確認すればいいの?
一番シンプルなのは、使っていない行・列・シートを削除すること。実は、一見空白に見えるセルでも、書式設定などが残っていると、それだけでファイルの負荷になっているんだ
空白なのに負荷になるの!?
うん、意外と見落としがちなポイントなんだ。シートの右端や下端まで一度スクロールしてみて、明らかに使っていない行や列があれば、右クリックから「行を削除」「列を削除」を選んでみて
使っていないシートも、消した方がいいの?
うん、もう使っていないシートがあれば、削除するか、別のファイルに分けておくといいね
使用していない行・列・シートは、見た目には空白であっても、書式設定などの情報が残っていると処理対象としてカウントされ、ファイルの負荷を高める原因になる。シートの右端・下端までスクロールし、明らかに不要な行や列があれば、右クリックメニューから「行を削除」「列を削除」で完全に取り除くことが有効である。使用していないシート自体も、削除するか別ファイルに分離しておくとよい。
②「揮発性関数」の使用を見直す
関数も原因になるって聞いたことあるけど、本当?
うん、特に注意したいのが「揮発性関数」って呼ばれる種類の関数なんだ
「揮発性関数」って何?
TODAY関数やNOW関数、RAND関数みたいに、シートを開くたび、編集するたびに、常に再計算され続ける関数のことだよ。これを大量に使っていると、いつまでも計算が終わらなくて、重くなりやすいんだ

TODAY関数、前に教えてもらったやつだ!これも原因になるんだね
うん。対策としては、A1セルに一箇所だけ「=TODAY()」を入れて、他のセルからは「=A1」のように参照する形にすると、無駄な再計算を防げるよ
TODAY・NOW・RAND・RANDBETWEENなどの「揮発性関数」は、シートを開くたびや編集するたびに常に再計算が発生する特性を持つ。これらを複数のセルで多用していると、常に再計算処理が走り続けることになり、動作が重くなる大きな原因となる。対策としては、1つのセル(例:A1)にのみ揮発性関数を入力し、他のセルではそのセルを参照する形(=A1)にすることで、無駄な再計算の発生を最小限に抑えられる。
③重い関数の範囲指定を見直す
VLOOKUPとかもよく使うんだけど、これも重くなる原因なの?
関数自体というより、範囲の指定の仕方が原因になることが多いんだ。たとえば「B:Z」のように、列全体を丸ごと指定していない?
やってるかも…!それの何がいけないの?
「B:Z」のように書くと、スプレッドシートは一番下の見えない行まで、律儀に計算し続けてしまうんだ。数万行分の無駄な計算をさせているのと同じことになるんだよ
どうすればいいの?
「B2:Z1000」のように、必要な範囲だけをきちんと指定してあげるだけで、負荷はかなり軽くなるよ。IMPORTRANGEやARRAYFORMULAといった関数も、同じように範囲指定を絞ることが大事だね
VLOOKUP・IMPORTRANGE・ARRAYFORMULAなどの関数を使う際、「B:Z」のように列全体を指定してしまうと、実際にはデータが存在しない行まで含めて計算対象になってしまい、大きな負荷がかかる。「B2:Z1000」のように、実際に必要な範囲だけを明確に指定することで、無駄な計算処理を大幅に減らすことができる。特にデータ量の多いシートほど、この一手間の効果は大きい。
④確定した過去データは「値」に変換する
このシート、去年の分の売上データも全部残ってて、そこにも関数が入ってるんだけど、これも原因になる?
それは大いに関係あるよ。「去年の売上」って、もう変わらない確定した数字だよね?なのに関数を残したままにしていると、シートを開くたびに毎回律儀に再計算が走ってしまうんだ
確かに、もう変わらないのに毎回計算するのは無駄だね。どうすればいいの?
確定したデータの範囲をコピーして、「編集」から「特殊貼り付け」→「値のみ貼り付け」を選ぶんだ。そうすると、関数がただの数字に置き換わって、負荷が大きく減るよ
すでに確定していて今後変わることのない過去のデータに、関数(計算式)を残したままにしていると、シートを開くたびに不要な再計算が発生し続ける。該当範囲をコピーし、「編集」→「特殊貼り付け」→「値のみ貼り付け」を選択することで、関数を単なる数値データに変換できる。計算式の数が減ることで、シート全体の負荷を大きく軽減できる。
⑤条件付き書式や画像の使いすぎに注意
条件付き書式もいろんな場所に設定してるんだけど、これも影響あるの?
うん、条件付き書式やフィルタ、大量の画像なんかも、描画の処理を重くする原因になるんだ
条件付き書式って、どこで確認できるの?
シート全体を選択した状態で、「表示形式」から「条件付き書式」を開くと、設定されているルールが一覧で表示されるよ。不要なものはゴミ箱アイコンから削除できるんだ
画像はどうすればいいの?
画像を直接シートに貼り付けていると重くなりやすいから、画像自体は削除して、Googleドライブに保存したURLだけを記載する形にすると、ファイルサイズを大きく減らせるよ
条件付き書式やフィルタ、シート内に直接貼り付けた画像なども、描画処理の負荷を高める要因となる。条件付き書式は、シート全体を選択した状態で「表示形式」→「条件付き書式」を開くと一覧確認でき、不要なルールはゴミ箱アイコンから削除できる。画像については、シートに直接貼り付けるのではなく、Googleドライブなどの外部ストレージに保存し、そのURLリンクをセルに記載する形に置き換えることで、ファイルサイズを大幅に削減できる。
⑥ブラウザ側の設定・環境を見直す
シート自体を見直す以外にも、何かできることはある?
ブラウザ側の環境も見直してみるといいよ。まず、Chromeブラウザのタブをたくさん開きすぎていない?
確かに、いつも20個くらい開きっぱなしにしてるかも…
それはパソコンのメモリを圧迫している可能性が高いね。使っていないタブは閉じてみて。あと、Chromeの「ハードウェアアクセラレーション」という設定がオンになっているかも確認してみるといいよ
それは何をする設定なの?
画面の描画処理を、パソコンのグラフィック機能に任せる設定だよ。「設定」→「詳細設定」→「システム」から確認できるから、オフになっていたらオンにしてみて。あわせて、ブラウザのキャッシュをクリアするのも効果的だね
シート自体に問題がない場合、ブラウザ側の環境も見直すとよい。Chromeブラウザのタブを多数開いたままにしていると、パソコンのメモリを圧迫し、スプレッドシートの動作にも影響を及ぼすことがある。使用していないタブは閉じることが望ましい。また、Chromeの「設定」→「詳細設定」→「システム」から確認できる「ハードウェアアクセラレーション」がオフになっている場合、オンに変更することで描画処理が改善することがある。あわせて、ブラウザのキャッシュをクリアすることも、動作改善に効果的な場合がある。
⑦それでも重い場合は、ファイルを分割・複製する
ここまで試しても、まだ重かったらどうすればいいの?
その場合は、思い切って「分割」か「複製」を検討してみよう。たとえば、月別・事業部別にファイルを分けて、必要なときだけ別ファイルからデータを参照する、という方法があるよ
「複製」っていうのは?
実は、長く使い込んだシートは「変更履歴」がどんどん蓄積されていて、これが重さの原因になっていることもあるんだ。ファイルをコピーして新しいスプレッドシートを作ると、変更履歴がまっさらになって、軽くなることがあるよ
気をつけることはある?
複製すると、ファイルのIDが変わってしまうんだ。もし他のシートからIMPORTRANGE関数で参照されていたり、プログラムでファイルIDを使っていたりする場合は、そちらの修正も忘れずにね
ここまでの対処法を試しても改善しない場合は、ファイルの分割や複製を検討する。1つのシートにあらゆるデータを詰め込んでいる場合は、月別・事業部別などにファイルを分割し、必要な範囲だけをIMPORTRANGE関数で参照する構成にすることで、個々のファイルの負荷を軽減できる。また、長期間使用しているシートは「変更履歴」が蓄積されて重さの原因になっていることがあり、ファイルをコピーして新しいスプレッドシートとして作り直すことで、変更履歴がリセットされ動作が軽くなる場合がある。ただし、複製するとファイルIDが変わるため、他のシートからIMPORTRANGE関数で参照されている場合や、GASなどのプログラムでファイルIDを利用している場合は、あわせて修正が必要になる点に注意したい。
まとめ:まずは「見えない負荷」を疑おう
今日でスプレッドシートが重くなる原因、だいぶわかった気がする!
最後にまとめると、今日紹介したのはこんな内容だったね
| 対処法 | ポイント |
|---|---|
| ①不要な行・列・シートを削除 | 空白でも書式が残っていると負荷になる |
| ②揮発性関数を見直す | TODAY・NOW等は1セルにまとめて他は参照する |
| ③関数の範囲指定を絞る | 「B:Z」ではなく「B2:Z1000」のように限定する |
| ④確定データを値に変換 | 「特殊貼り付け」→「値のみ貼り付け」で数式を排除 |
| ⑤条件付き書式・画像を整理 | 不要なルールを削除、画像はURLリンクに置換 |
| ⑥ブラウザ環境を見直す | タブを閉じる、ハードウェアアクセラレーションの確認 |
| ⑦ファイルの分割・複製 | 用途別に分割、変更履歴のリセットで軽量化 |
僕はまず、不要な行や列の削除から試してみるよ!
いいと思うよ。1つずつ試していけば、どこが原因だったのか自然と見えてくるはずだから、焦らず順番に確認してみてね
リュージ、今日も教えてくれてありがとう!
スプレッドシートが重くなる原因は「データ量」「関数」「書式」「環境」など複合的であることが多い。まずは不要な行・列・シートの削除、揮発性関数や関数範囲の見直しといった、比較的簡単に試せる対策から始め、それでも改善しない場合はファイルの分割や複製といった、より本格的な対策を検討するとよい。定期的にシートの「健康状態」を見直す習慣をつけることで、快適な作業環境を維持しやすくなる。



