エクセルで数式を入力した直後に「計算中」と表示され、画面が固まったように感じることがあります。
特に大量の行を扱うブック、複雑な関数を組み合わせた集計表、他のファイルを参照する数式があるブックでは、再計算に時間がかかりがちです。
しかし、計算が遅い原因は単にパソコンの性能だけではありません。
数式の設計、計算方法の設定、参照範囲、スレッド数、不要な書式やリンクなどを見直すことで、処理時間を大きく短縮できるケースがあります。
エクセル計算の高速化で確認したいポイント
・計算方法が自動になっているか
・重い関数や列全体参照を使いすぎていないか
・マルチスレッド計算が有効になっているか
・外部参照や不要なデータが残っていないか
この記事では、エクセルの計算が遅いときに確認したい原因と、実務で使いやすい高速化の方法を順番に解説します。
サンプルデータは1行目を見出し行として扱います。
エクセルの計算を速くする基本設定
それではまず、エクセルの計算が遅いと感じたときに最初に確認したい設定について解説していきます。
| 商品名 | 数量 | 単価 | 金額 |
|---|---|---|---|
| ノート | 12 | 180 | =B2*C2 |
| ペン | 8 | 120 | =B3*C3 |
計算速度の改善では、数式を直す前に、計算モードと計算に関するオプションを確認することが重要です。
計算方法の確認
計算方法が自動の場合、セルの値や数式を変更するたびに、関連する数式が再計算されます。
通常は自動計算が便利ですが、数万行のデータや複雑な関数を含むブックでは、入力のたびに待ち時間が発生するかもしれません。
作業中だけ手動計算に切り替え、必要なタイミングで再計算する方法は、大きなブックで特に有効です。

「数式」タブを開き、「計算方法の設定」から「手動」を選択します。
手動にした後は、F9キーでブック全体を再計算できます。
ただし、手動計算では表示中の結果が最新とは限りません。
集計結果を提出する前や保存する前には、必ず再計算を実行しましょう。
計算モードを手動にした場合でも、数式の正しさが変わるわけではありません。
再計算を実行する時点を自分で管理する設定です。
計算状態表示の確認
画面下部のステータスバーに「計算中」と出る場合、エクセルは数式の再計算を実行しています。
「プロセッサの使用率」が高いときは、複数の計算処理が並行して動いている可能性があります。
一方で、数式を変更していないのに計算中が続く場合は、揮発性関数、外部リンク、データテーブルなどが影響していることもあります。

計算中の表示を単なる不具合と決めつけず、どの操作の後に発生するかを観察すると、原因の切り分けがしやすくなります。
たとえばフィルターの変更後だけ遅くなるなら、集計関数や参照範囲が広すぎることを疑います。
ファイルを開くときだけ遅いなら、外部リンクや更新クエリの確認が必要です。
不要なアドインとリンクの整理
エクセルの計算が遅い場合、ブック内の数式以外に、アドインや他のブックへのリンクが関わっていることがあります。
使用していないアドインは、「ファイル」の「オプション」から「アドイン」を選び、管理対象を確認できます。
また、「データ」タブの「クエリと接続」や、「データ」タブ内のリンクに関する項目も確認対象です。
古い共有フォルダーや削除済みのファイルを参照していると、更新待ちによって動作が遅くなることがあります。
【操作のポイント】アドインや外部リンクは、業務上の必要性を確認してから無効化または解除します。
重い関数と参照範囲の見直し
続いては、数式そのものが計算時間を押し上げる代表的な原因を確認していきます。
| 日付 | 担当者 | 売上 | 条件集計 |
|---|---|---|---|
| 2026/10/01 | 田中 | 12000 | =SUMIFS($C$2:$C$1000,$B$2:$B$1000,B2) |
| 2026/10/02 | 佐藤 | 9500 | =SUMIFS($C$2:$C$1000,$B$2:$B$1000,B3) |
数式が正しくても、コピー先のセル数と検索対象の範囲が大きくなるほど、計算量は増えていきます。
列全体参照の縮小
SUMIF、SUMIFS、COUNTIF、XLOOKUP、VLOOKUPなどで、A:AやB:Bのように列全体を参照すると、エクセルは非常に多くのセルを計算対象として扱います。
数百行の表なのに、100万行以上ある列全体を何度も参照していれば、待ち時間が増えるのは自然な結果です。

たとえば、次のような式はわかりやすい反面、大量データでは負荷が大きくなります。
=SUMIFS(C:C,B:B,F2)
データが2行目から10000行目までと分かっているなら、参照範囲を限定します。
=SUMIFS($C$2:$C$10000,$B$2:$B$10000,F2)
範囲を必要な行まで絞るだけでも、同じ集計式を多数配置したブックでは効果が現れます。
将来の行追加に備えるなら、Excelテーブルとしてデータを管理し、構造化参照を利用する方法も便利です。
揮発性関数の使用量

NOW、TODAY、RAND、RANDBETWEEN、OFFSET、INDIRECTなどには、再計算のきっかけが多い関数があります。
これらは関連しないセルを変更したときにも計算される場合があり、セル数が多いほど影響が目立ちます。
特にOFFSETやINDIRECTは、参照先を柔軟に作れる一方で、計算の依存関係を追いにくくする要因です。
動的な範囲を作る目的だけなら、INDEX関数やExcelテーブルで置き換えられないか検討しましょう。
日付を固定してよい帳票なら、TODAY関数の結果を値として貼り付けることも選択肢です。
乱数が必要な処理も、完成後は値に変換すると再計算の負担を抑えられます。
検索関数の重複計算
同じ検索式を複数の列で繰り返していると、検索先の表を何度も走査することになります。
たとえば商品コードから商品名、単価、分類を取得するために、同じキーでXLOOKUPを3回使う構成では、データ量によって処理が重くなります。
補助列に検索結果を一度だけ取得し、その結果を別の数式で参照する設計を考えるとよいでしょう。
Microsoft 365で使えるLET関数を使うと、式の中で同じ計算結果に名前を付け、繰り返し計算を減らせます。
=LET(単価,XLOOKUP(A2,商品一覧!A:A,商品一覧!C:C),B2*単価)
数式を短く見せることだけが目的ではなく、計算の重複を避けるという意味でも有効です。
【操作のポイント】重い数式を見つけたら、列全体参照、揮発性関数、同じ検索の繰り返しを順に確認します。
マルチスレッド計算とCPU設定
続いては、計算中のスレッドとCPUを活用するための設定を確認していきます。
| 設定項目 | 確認内容 | 期待できる効果 |
|---|---|---|
| マルチスレッド計算 | 有効化の状態 | 複数コアの活用 |
| 使用するプロセッサ数 | 自動または指定値 | 並列処理の最適化 |
マルチコアCPUを搭載したパソコンでは、エクセルが複数の計算スレッドを利用できる場合があります。
マルチスレッド計算の有効化
「ファイル」から「オプション」を開き、「詳細設定」にある数式関連の項目を確認します。
その中にある「マルチスレッド計算を行う」が有効なら、計算を複数のプロセッサスレッドに分けて実行できます。
この設定は、多数の独立した数式を含むブックで計算時間の短縮につながる可能性があります。
設定変更後は、一度エクセルを閉じて開き直すと、動作の違いを確認しやすくなります。
使用するプロセッサ数の考え方
設定画面では「このコンピューターのすべてのプロセッサを使用する」を選択できる場合があります。
基本的には自動設定またはすべてのプロセッサを使用する設定で問題ありません。
ただし、エクセル以外にも重いソフトを同時に動かしていると、パソコン全体の操作が不安定になることがあります。
その場合は、使用するプロセッサ数を少し減らして、他の業務ソフトとのバランスを見る方法もあります。
スレッド数を増やせば必ず同じ割合で速くなるわけではなく、数式同士の依存関係によって効果は変わります。
並列化しにくい数式構造
あるセルの結果を次のセルが参照し、その結果をさらに次のセルが参照するような連鎖が長い場合、計算を同時に進めにくくなります。
たとえばA列の結果をB列が参照し、B列の結果をC列が参照する構造を何万行も続けると、処理が順番待ちになりやすい傾向があります。
補助列をむやみに増やすことが悪いわけではありませんが、依存関係が複雑になりすぎないように整理することが大切です。
計算速度を測るときは、同じデータで設定変更の前後を比較します。
体感だけでなく、F9キーを押してから計算表示が消えるまでの時間を記録すると判断しやすくなります。
【操作のポイント】マルチスレッド計算を有効にしたら、実際の業務ブックで計算時間と操作性を確認します。
数式とデータ構造の高速化
続いては、日常的に使う表を軽くするための数式設計とデータ構造を確認していきます。
| 受注番号 | 商品コード | 数量 | 単価 |
|---|---|---|---|
| A001 | P-101 | 5 | =XLOOKUP(B2,商品!A:A,商品!C:C) |
計算を速くするには、同じ結果を得るためにどれだけ少ない計算で済ませられるかを考えます。
補助列を使った計算の分割
長い数式を1セルに詰め込むと、見た目はすっきりしますが、修正や検証が難しくなります。
複数条件の判定、文字列加工、検索、集計を一つの式に混在させるよりも、途中結果を補助列に分けるほうが改善につながることがあります。
たとえば、日付から年月を取り出す処理を各集計式に繰り返し書くのではなく、元データ側に年月列を作成します。
=TEXT(A2,”yyyy-mm”)
その後、作成した年月列をSUMIFS関数の条件範囲として使えば、式の意味も確認しやすくなります。
補助列は計算回数を増やすためではなく、同じ複雑な処理を何度も実行しないために使う考え方です。
データの値化とピボットテーブル
過去月の実績のように、今後変わらないデータまで数式で毎回計算する必要はありません。
確定済みの結果は値として貼り付け、再計算の対象から外すとブックを軽くできます。
また、明細データから月別や担当者別の集計を何度も行うなら、ピボットテーブルの利用も有効です。
ピボットテーブルは集計用の構造を持つため、複数のSUMIFS関数を大量に置くより操作しやすい場面があります。
元データをExcelテーブルにしておけば、行の追加後も集計対象を管理しやすくなります。
条件付き書式と名前定義の確認
セルの値ではなく、画面表示に関する設定がファイルを重くしていることもあります。
特に広い範囲に適用された条件付き書式、重複した書式ルール、大量の図形は、スクロールや編集の遅さにつながります。
「ホーム」タブの条件付き書式から「ルールの管理」を開き、不要なルールや過剰な適用範囲を整理しましょう。
名前の管理で、参照エラーになっている名前定義や、不要な動的参照が残っていないかを確認することも大切です。
【操作のポイント】数式だけでなく、条件付き書式、図形、名前定義もブックの負荷として確認します。
外部参照とファイル容量の整理
続いては、他のファイルとの接続やブックの肥大化による遅延を確認していきます。
| 確認対象 | 遅くなる理由 | 対策例 |
|---|---|---|
| 外部リンク | 参照先の確認と更新 | 不要なリンクの解除 |
| 不要な書式 | 使用範囲が広がる | 書式の整理 |
ブック内の見えていない要素が、開く時間や保存時間、再計算時間に影響することがあります。
外部ブック参照の影響
別のエクセルファイルを参照する数式では、元ファイルの場所や更新状態の確認が発生します。
ネットワークドライブ、OneDrive、共有サーバー上のファイルを参照している場合は、通信状況も待ち時間に影響します。
参照先が不要になった数式は、値に置き換えるか、リンクを解除して依存関係を減らすことが高速化につながります。
ただし、リンクの解除後は元データが更新されても自動反映されません。
更新が必要なデータなのか、確定済みのデータなのかを区別して作業しましょう。
使用済み範囲と不要書式
実際にはデータがないのに、何十万行ものセルに書式や罫線が設定されていると、ファイルサイズが大きくなることがあります。
CtrlキーとEndキーを押し、エクセルが認識している最終セルが実データより大幅に下や右へ離れていないかを確認します。
不要な範囲の行や列を整理し、保存してから再度開くと改善する場合があります。
単にDeleteキーで内容を消すだけでは書式が残ることがあるため、必要に応じて「ホーム」タブのクリア機能を使います。
ファイル形式と保存先
通常の表計算なら、xlsx形式で保存することでファイルサイズを抑えられる場合があります。
マクロを含む場合はxlsm形式を使いますが、不要なマクロや古いシートを残したままにしないことが大切です。
古いxls形式のブックは、互換性の都合で扱いにくい機能もあります。
業務への影響を確認したうえで、現行形式へ移行することも検討しましょう。
保存に時間がかかる場合は、数式だけでなく画像、図形、不要なシート、外部リンク、過剰な書式を確認します。
【操作のポイント】外部リンクを解除する前には、コピーを作成し、更新が不要なデータかを確認します。
作業時の計算負荷を抑える方法
続いては、ブックを作り直さずに、日々の作業で計算負荷を抑える方法を確認していきます。
| 作業場面 | おすすめの対応 |
|---|---|
| 大量データの貼り付け | 一時的に手動計算へ変更 |
| 帳票の完成後 | 確定値を値貼り付け |
作業の順序を少し変えるだけでも、待ち時間を減らせることがあります。
大量貼り付け前の準備
数万行のデータを貼り付ける前に、計算方法を手動に切り替えると、貼り付け途中の再計算を抑えられます。
データの貼り付け、書式の調整、数式のコピーまでを終えてから、F9キーでまとめて再計算します。
一件ずつ入力して再計算を何度も繰り返すより、処理をまとめるほうが効率的です。
ただし、途中で表示される結果を使って判断する作業では、計算が最新かどうかを意識しましょう。
数式コピーとオートフィル
数式を下方向へコピーするときは、先頭セルの式が正しいことを確認してからオートフィルを実行します。
たとえばD2セルに「=B2*C2」を入力し、フィルハンドルを下へドラッグすると、行番号が自動的に変わります。
D2の数式 =B2*C2
D3へオートフィル後 =B3*C3
絶対参照が必要な範囲には、$記号を付けます。
たとえば税率がF1セルにある場合、金額計算は「=D2*$F$1」とします。
参照のずれによるエラーを防ぐことは、修正のための再計算を減らすことにもつながります。
パソコン環境の確認
ブックの設計を見直しても遅い場合は、パソコンのメモリ不足、空き容量不足、他のソフトの起動状況も確認します。
ブラウザーで多くのタブを開いた状態や、オンライン会議、画像編集ソフトなどを同時に実行すると、エクセルに使えるメモリやCPU時間が減ります。
タスクマネージャーでCPU、メモリ、ディスク使用率を確認し、特定の処理が極端に負荷を使っていないかを見るのも有効です。
複雑な計算を毎日行う業務なら、メモリ容量やSSDの状態を含めて作業環境を整える価値があります。
【操作のポイント】大量編集の前は手動計算に切り替え、完了後にF9キーで結果を確定させます。
まとめ エクセルの計算を高速化する原因別対処法
エクセルの計算が遅い原因は、数式の多さだけではありません。
計算方法が自動になっていること、列全体参照や揮発性関数を多用していること、外部リンクが残っていること、条件付き書式や不要な書式が広がっていることも影響します。
まずは計算モード、参照範囲、重い関数、マルチスレッド計算の設定を確認し、負荷の大きい部分から順番に見直しましょう。
特にSUMIFSやXLOOKUPなどを大量に使う表では、参照範囲を適切に限定し、同じ検索や計算を繰り返さない構造に整えることが重要です。
作業中だけ手動計算にし、入力や貼り付けが完了してからF9キーで再計算する方法も、すぐに実践できます。
高速化は一つの設定だけで完了するとは限りません。
ブックの数式、データ構造、リンク、パソコン環境を少しずつ整理して、計算中の待ち時間を減らしていきましょう。