Excelで膨大なデータを扱っている際に便利なのが再計算です。
多くのセルに関数が入力されていても、参照しているセルの値を変更すれば、自動的に計算結果も更新されます。
とはいえ、再計算が正しく機能せず、求めていた結果が反映されない場合もあります。
そこで今回の記事では、再計算の基本的な機能や結果が反映されない原因、手動計算についても解説していきます。
Excelの再計算で困ったことがある方は、ぜひ参考にしてくださいね。
目次
Excelの再計算をスムーズに実行できないのはなぜ?
膨大なデータで再計算を実行すると、パソコンの性能次第ではExcelがフリーズしたり、計算が鈍化したりすることがあります。
たとえば、表計算では1つのセルの値を変更すると、そのセルの値を参照しているセルの計算式が自動的に実行されて値が自動的に変更されてしまうためです。
ほかにも、Webコンサルタントの業務で広告のクリック数に応じて売上見込みを立てることがありますが、毎日売上が入力されたセルの条件を変更しながらシミュレーションを行うと、都度、多くのセルで再計算が行われます。
あまり容量のないプロセッサを利用していたり、搭載メモリが少ないパソコンでは、大量の計算が行われる場合に反応が鈍くなり、非常に非効率です。
その場合の対処法としては、再計算をオフにすることがおすすめです。
Excelで再計算をオフにする4つの方法
Excelの再計算にかなりの時間がかかっていたり、パソコンに負荷がかかったりしてる時は、再計算を手動で行うように切り替えるとよいです。
Excelで自動再計算を「オフ」にする方法は、Excelの[数式]タブの[計算方法の設定]グループにある[計算方法の設定]をクリックして、メニューの[手動]を選択します。
ショートカットキーを使うのであれば、[Alt]+[M]キーの後、[X]キー、[M]キーを順番に押せばOKです。これで計算方法の設定が「手動」、つまり自動再計算が「オフ」になりました。
ただし、再計算を停止させていることを忘れると、データが正しい数字ではない状態ではないため、業務上大変なことになります。
そのため、自動再計算を「オフ」にしたときに、必要になるのが「再計算」の指示を忘れずに実行しましょう。
リボンからも行うことができますが、キーボードショートカットを使うことで、より細かく指示を出すことができます。
Excelのショートカットキーを使って再計算する方法
前述したとおり、キーボード ショートカットを使用して、手動でワークシートまたはブックの再計算を行う方法があります。
主に4つあるので、使い慣れていくと作業スピードがあがりますよ。
1.F9
作業中のブックの中で、最後に計算されたとき以降に変更された数式と、その数式を参照する数式を再計算します。 ブックに自動再計算が設定されている場合は、F9 キーを押して再計算する必要はありません。
2.Shift + F9
作業中のワークシートの中で、最後に計算されたとき以降に変更された数式と、その数式を参照する数式を再計算します。
3.Ctrl + Alt + F9
開いているすべてのブックの数式を再計算します。最後に再計算されたとき以降に変更されたかどうかは問いません。
4.Ctrl + Shift + Alt + F9
依存する数式を確認し、開いているすべてのブックのすべての数式を再計算します。最後に再計算されたとき以降に変更されたかどうかは問いません。
引用:Microsoftサポート|Excel で数式の再計算、反復計算、または精度を変更する
Excelの再計算中にフリーズしたときの対処法
パソコンの容量や機能によっては、Excelの再計算の処理に耐えきれずフリーズしてしまうこともあります。
そんなときはExcelをセーフモードで実行しましょう。すると、代替スタートアップの場所、変更されたツールバー、Excelで使用されるスタートアップ フォルダー、Excelアドイン、およびほとんどの COM アドインなどの機能と設定がエラーを回避することができます。このセーフモードのトラブルシューティングは、次の2つの方法で行うことができます。
1.Microsoftサポートと回復アシスタントを使用して、セーフモードのトラブルシューティングを自動化する
2.手動でセーフモードのトラブルシューティングを自分で実行する
なお、セーフモードのトラブルシューティングを自動化することもできます。
Microsoft サポートとアシスタントは、問題がアドイン、スタートアップフォルダー内のファイル、またはツール バーの設定に起因しているかどうかを知らせるために、セーフ モードの分離プロセスを完全に自動で行います。
このアシスタントは、ほとんどの場合レジストリを変更し、Excelで使用されるスタートアップ フォルダーからファイルを移動させます。
ですから、アシスタントを実行する前に、問題が発生した場合にレジストリとバックアップ ファイルを復元できるようにしましょう。
たとえば、Excelで使用されるスタートアップフォルダー内のすべてのファイルをバックアップする、などがおすすめです。
Excelの再計算をスムーズに機能させるポイント
実は、ウイルス対策ソフトウェアが最新でない場合、Excel が適切に動作しないことがあります。
ですから、ウイルス対策ソフトウェアが最新であることをご確認ください。
新たに出現するウイルスに対応するため、ウイルス対策ソフトウェアのベンダーは、インターネットからダウンロード可能な更新プログラムを定期的に提供しています。
そのため、ご自身が使用しているウイルス対策ソフトウェアのベンダーのWebサイトから必ず最新の更新プログラムをダウンロードしてください。
そのうえで、ウイルス対策ソフトウェアがExcelと競合しているかどうかを確認します。
たとえば、使用しているウイルス対策ソフトウェアにExcelとの統合機能が含まれている場合、パフォーマンスが低下したり、フリーズしたりすることがあります。
その場合は、ウイルス対策ソフトウェアにあるすべてのExcel統合機能を無効にしてください。ほかにも、Excelにインストールされているウイルス対策ソフトウェアのアドインを無効にすることもできるので、試してみるとよいでしょう。
参考:Microsoftサポート|Excel が応答しない、停止する、フリーズする、動作しなくなる
Excelの再計算を手動にしたときの注意点
再計算をオフ、つまり手動にした場合、再計算を止めていることが第三者には分かりにくいです。
そのため、再計算が止まっているのに気づかずに作業を進めてしまうと、再計算される前の数字を確認してしまうおそれも。
クライアントに提出する売上や決算報告書などの数値が違うと大変なことになるので、十分に注意してください。
ですから、Excelのブックやシートでの作業を終えたタイミングで、再計算を自動に戻しておくなどを習慣化させましょう。
あわせて読みたい|Excelの再計算の仕組み
そもそもExcel上で再計算がどのような仕組みで実行されているのか、理解している方は少ないでしょう。ユーザーは再計算のコマンドをクリックするだけで機能しますが、実はExcelのワークシートの再計算は3段階のプロセスで実行されているのです。
依存関係ツリーの構築計算チェーンの構築セルの再計算 |
依存関係ツリーとは、アプリケーションの間接的な関係性を体系化、つまり枝分かれした樹木のような状態のものです。
この依存関係ツリーによって、Excelはセル間の依存関係または同等性、セル間の参照関係についての情報を取得します。
Excelは、このツリーから計算チェーンを構築します。
計算チェーンとは、数式を格納しているすべてのセルの一覧であり、計算される順序で並べられている表のようなものを想像してください。
再計算を実行する際に、まだ計算されていないセルに依存する数式が見つかると、このチェーンはExcelによって改修されます。
この場合、計算されるセルとそのセルの参照先は、チェーンの最後尾に移動されます。
そのため、Excelを開いた直後のワークシートでの最初の計算サイクルは計算時間が早い傾向です。
また、新しい数式がセルに入力されると、ブックに構造上の変更が行われることになるためExcexは依存関係ツリーと計算チェーンを構築しなおします。
つまり、Excelに新しいデータや新しい数式が入力される度、新しいデータに依存するセルのすべてに再計算が必要である、という命令をするためにマークをつけます。
このようにマークが付けられたセルは、「ダーティ」と呼ばれ、直接および間接のすべての参照先にダーティのマークが付きます。
たとえば、B1がA1に依存していて、C1がBに依存している場合、A1が変更されると、B1 とC1の両方にダーティのマークが付きます。
あるセルがセル自体に直接的または間接的に依存している場合は、Excelによって循環参照が検出され、ユーザーに警告文が表示されます。
これは、通常ユーザーが修正しなければならないエラー状態で、Excelには、ユーザーが循環依存の関係の原因を見つけられるようにする非常に役立つナビゲーションツールが搭載されているのです。
場合によっては、この状態をユーザー側が意図的に必要とすることもあります。
たとえば、次の計算の開始点が、前の繰り返しの結果になる反復計算の実行を必要とする場合、Excel は、[計算方法の設定] ダイアログボックスによる反復計算の制御をサポートしています。
また、セルにダーティのマークを付けた後、次回の再計算が実行されるときには、Excel上でそれぞれのダーティ セルの内容を計算チェーンで指定された順序で計算していきます。
先ほどの例でいうと、最初にB1、次にC1の順になるというわけです。
この再計算が自動になっている場合には、Excelがセルにダーティのマークを付け終わった直後に実行されます。
それ以外の場合は再計算は後で実行されます。
Microsoft Excel 2002 以降
Microsoft Visual Basic for Applications (VBA) の Range オブジェクトは、セルに計算が必要というマークを付ける Range.Dirty メソッドをサポートしています。
このメソッドを Range.Calculate メソッドと併用すると、特定の範囲内のセルを強制的に再計算できるようになります。
これは、計算モードが手動に設定されているときに、マクロで限定的な計算を実行する際に、そのマクロ関数とは無関係のセルを計算するオーバーヘッドを回避するために役立ちます。範囲計算のメソッドはAPI では使用できません。
Microsoft Excel 2002 以前
Excelで開いている各ブックのワークシートごとに計算チェーンを構築しているため、処理されるワークシート間のリンクは非常に複雑です。
そのため、効率的な再計算のためには注意が必要でした。
特にExcel 2000では、ワークシート間の依存関係を最小限にして、ワークシートにアルファベット順の名前を付ける必要があります。
このようにして、他のシートに依存するシートが、依存先のシートの後に (アルファベット順) なるようにします。
まとめ
いかがでしたでしょうか。
今回の記事では、Excelの再計算をテーマに、自動と手動の切り替え方や注意点、再計算の仕組みについてお伝えしてきました。
営業事務や経理事務のようなお仕事をされている方は、日々の売上データを作成したり、分析や計算処理などで、数式が莫大な量になったりしますよね。
それらの処理が遅い場合には、再計算の設定を「手動」に切り替えてみましょう。
ただし、再計算を止めていることはわかりにくいため、作業後に自動に戻すことを絶対に忘れないようにしてくださいね。
Excelの再計算は作業負荷の軽減には便利ですが、多用は控えた方がベターでしょう。