PowerPivot の数式を再計算する

適用先
Excel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Power Pivot でデータを操作する場合、ソースのデータを更新したり、集計列で作成した数式を再計算したり、ピボットテーブルに表示されるデータが最新であることを確認したりする必要がある場合があります。

このトピックでは、データの更新と再計算の違いを説明し、再計算のトリガー方法の概要を説明し、再計算を制御するオプションについて説明します。

データ更新と再計算について

Power Pivot では、データの更新と再計算の両方が使用されます。

データ更新 とは、外部データ ソースから最新のデータを取得することを意味します。 Power Pivot は外部データ ソースの変更を自動的に検出しませんが、Power Pivot ウィンドウから手動で、またはブックが SharePoint で共有されている場合は自動的にデータを更新できます。

再計算 とは、数式を含むブック内のすべての列、テーブル、グラフ、ピボットテーブルを更新することです。 数式を再計算するとパフォーマンス コストが発生するため、各計算に関連付けられている依存関係を理解することが重要です。

重要

数式が再計算されるまでは、ブックを保存または公開しないでください。

手動再計算と自動再計算

既定では、Power Pivot は処理に必要な時間を最適化しながら、必要に応じて自動的に再計算します。 再計算には時間がかかる場合がありますが、重要な作業です。つまり、再計算では列の依存関係がチェックされ、列が変更された場合、データが無効になった場合、または以前に作っていた数式にエラーが表示された場合に通知されるからです。 ただし、特に複雑な数式や非常に大きなデータ セットを操作していて、更新のタイミングを制御したい場合は、検証を省略して手動でのみ計算を更新することを選択できます。

手動モードと自動モードの両方に利点があります。ただし、自動再計算モードを使用することを強くお勧めします。 このモードでは、Power Pivot メタデータの同期が維持され、データの削除、名前やデータ型の変更、依存関係の欠落によって発生する問題を防ぐことができます。 

自動再計算の使用

自動再計算モードを使用する場合、数式の結果が変わる原因となるデータが変更されると、数式を含む列全体の再計算がトリガーされます。 以下を変更した場合は、常に数式の再計算が必要です。

  • 外部データ ソースの値が更新されました。
  • 数式の定義が変更されました。
  • 数式で参照されるテーブル名または列名が変更されている。
  • テーブル間のリレーションシップが追加、変更、または削除された場合。
  • 新しいメジャーまたは集計列が追加されました。
  • ブック内の他の数式が変更されているため、その計算に依存する列または計算を更新する必要があります。
  • 行が挿入または削除された。
  • データ セットを更新するためにクエリを実行する必要があるフィルターを適用しました。 フィルターは、数式内に適用することも、ピボットテーブルまたはピボットグラフの一部として適用することもできます。

手動再計算の使用

手動再計算を使用すると、準備ができるまで数式の結果を計算するコストの発生を回避できます。 手動モードは、次のような状況で特に役立ちます。

  • テンプレートを使って数式を設計していて、検証する前に数式で使用される列とテーブルの名前を変更したい場合。
  • ブック内の一部のデータが変更されたことがわかっているが、変更されていない別の列で作業しているため、再計算を延期したい場合。
  • 多くの依存関係を持つブックで作業しており、必要なすべての変更が加えられていることが確認されるまで再計算を延期したいと考えています。

ブックが手動計算モードに設定されている限り、Excel の Power Pivot は数式の検証やチェックを実行しず、次のような結果になります。

  • ブックに追加した新しい数式には、エラーを含むフラグが設定されます。
  • 新しい集計列に結果は表示されません。

手動再計算用にブックを構成するには

  1. Power Pivot で、[デザイン]>計算>計算オプション>[手動計算モード] をクリックします。
  2. すべてのテーブルを再計算するには、[計算オプション]>[今すぐ計算] をクリックします。
    ブックの数式にエラーがないかチェックされ、結果がある場合はテーブルに更新されます。 データ量や計算数によっては、ブックがしばらく応答しなくなることがあります。

重要

ブックを発行する前に、必ず計算モードを自動に戻す必要があります。 これにより、数式を設計する際の問題を回避できます。

再計算のトラブルシューティング

依存関係

ある列が別の列に依存していて、その別の列の内容が何らかの方法で変更された場合、関連するすべての列の再計算が必要になる場合があります。 Power Pivot ブックが変更されるたびに、Excel の Power Pivot は既存の Power Pivot データの分析を実行して再計算が必要かどうかを判断し、可能な限り最も効率的な方法で更新を実行します。

たとえば、Products テーブルと ProductCategory テーブルに関連する Sales テーブルがあるとします。および Sales テーブルの数式は、他の両方のテーブルに依存します。 [商品] テーブルまたは [商品カテゴリ] テーブルを変更すると、[売上高] テーブルのすべての集計列が再計算されます。 カテゴリ別または製品別に売上を合計する数式がある場合、これは理にかなっています。 したがって、結果が正しいことを確認するには。データに基づく数式を再計算する必要があります。

完全な再計算は変更された値を確認するよりも効率的であるため、Power Pivot は常にテーブルの完全な再計算を実行します。 再計算をトリガーする変更には、列の削除、列の数値データ型の変更、新しい列の追加などの大きな変更が含まれる場合があります。 ただし、列の名前の変更など、一見些細な変更によって、再計算もトリガーされる可能性があります。 これは、列の名前が数式の識別子として使用されるためです。

場合によっては、Power Pivot によって、列を再計算から除外できると判断されることがあります。 たとえば、[商品] テーブルから [商品の色] などの値を検索する数式があり、[売上高] テーブルの列が [数量] になっている場合、[売上] テーブルが関連していても、数式を再計算する必要はありません。 ただし、 Sales[Quantity] に依存する数式がある場合は、再計算が必要です。

従属列の再計算の順序

依存関係は、再計算の前に計算されます。 相互に依存する列が複数ある場合、Power Pivot は依存関係の順序に従います。 これにより、列が最高速度で正しい順序で処理されます。

取引

データの再計算または更新操作は、トランザクションとして実行されます。 つまり、更新操作の一部が失敗した場合、残りの操作がロール バックされます。 これは、データが部分的に処理された状態のままにならないようにするためです。 リレーショナル データベースのようにトランザクションを管理したり、チェックポイントを作成したりすることはできません。

可変関数の再計算

NOW、RAND、TODAY などの一部の関数には固定値がありません。 パフォーマンスの問題を回避するために、クエリまたはフィルター処理を実行しても、このような関数を計算列で使用した場合、通常は再評価されません。 これらの関数の結果は、列全体が再計算された場合にのみ再計算されます。 このような状況には、外部データ ソースからの更新や、これらの関数を含む数式の再評価を引き起こすデータの手動編集が含まれます。 ただし、NOW、RAND、TODAY などの揮発性の関数は、演算フィールドの定義でこの関数が使用されている場合、常に再計算されます。