PowerPivotのデータを操作する場合は、ソースからデータを更新したり、計算列で作成した数式を再計算したり、ピボットテーブルに表示されるデータが最新であることを確認したりする必要があります。
このトピックでは、データの更新と再計算の違いについて説明し、再計算のトリガー方法の概要と再計算を制御するためのオプションについて説明します。
データ更新と再計算について
PowerPivot では、データ更新と再計算の両方が使用されます。
データ更新 とは、外部データ ソースから最新のデータを取得することを意味します。 PowerPivot は外部データ ソースの変更を自動的に検出しませんが、 PowerPivot ウィンドウから手動でデータを更新することも、ブックが SharePoint で共有されている場合は自動的に更新することもできます。
再計算 とは、数式を含むすべての列、テーブル、グラフ、ピボットテーブルをブック内で更新することを意味します。 数式の再計算ではパフォーマンス コストが発生するため、各計算に関連付けられている依存関係を理解することが重要です。
重要: ブック内の数式が再計算されるまで、ブックを保存または発行しないでください。
手動再計算と自動再計算
既定では、 PowerPivot は、処理に必要な時間を最適化しながら、必要に応じて自動的に再計算されます。 再計算には時間がかかる場合がありますが、再計算中に列の依存関係がチェックされ、列が変更された場合、データが無効な場合、または以前の数式にエラーが表示された場合に通知されるため、重要なタスクです。 ただし、特に複雑な数式や非常に大きなデータ セットを操作していて、更新のタイミングを制御する場合は、検証を見送り、計算を手動でのみ更新できます。
手動モードと自動モードの両方に利点があります。ただし、自動再計算モードを使用することを強くお勧めします。 このモードでは、 PowerPivotメタデータが同期され、データの削除、名前またはデータ型の変更、依存関係の欠落によって発生する問題を回避できます。
自動再計算の使用
自動再計算モードを使用すると、数式の結果が変更されるデータを変更すると、数式を含む列全体の再計算がトリガーされます。 次の変更では、常に数式の再計算が必要です。
-
外部データ ソースの値が更新されました。
-
数式の定義が変更されました。
-
数式で参照されるテーブルまたは列の名前が変更されました。
-
テーブル間のリレーションシップが追加、変更、または削除されました。
-
新しいメジャーまたは計算列が追加されました。
-
ブック内の他の数式に変更が加えられたため、その計算に依存する列または計算を更新する必要があります。
-
行が挿入または削除されました。
-
データ セットを更新するためにクエリの実行を必要とするフィルターを適用しました。 フィルターは、数式で適用することも、ピボットテーブルまたはピボットグラフの一部として適用することもできます。
手動再計算の使用
手動再計算を使用すると、準備が整うまで数式の結果を計算するコストが発生しないようにすることができます。 手動モードは、次のような状況で特に役立ちます。
-
テンプレートを使用して数式を設計しており、検証する前に数式で使用される列とテーブルの名前を変更する必要があります。
-
ブック内の一部のデータが変更されたことはわかっていますが、変更されていない別の列を操作しているため、再計算を延期する必要があります。
-
多くの依存関係を持ち、必要なすべての変更が確実に行われるまで再計算を延期するブックで作業しています。
ブックが手動計算モードに設定されている限り、Excel の Power Pivot では数式の検証やチェックは実行されず、次の結果が得られます。
-
ブックに追加する新しい数式には、エラーが含まれているとフラグが設定されます。
-
新しい計算列には結果は表示されません。
手動再計算用にブックを構成するには
-
[PowerPivot] で、[デザイン]> [計算]> [計算オプション]> [手動計算モード] をクリックします。
-
すべてのテーブルを再計算するには、[計算オプション]> [今すぐ計算] をクリックします。
ブック内の数式でエラーがチェックされ、結果がある場合はテーブルが更新されます。 データの量と計算の数によっては、ブックがしばらく応答しなくなる場合があります。
重要: ブックを発行する前に、計算モードを常に自動に戻す必要があります。 これは、数式を設計するときの問題を防ぐのに役立ちます。
再計算のトラブルシューティング
依存関係
列が別の列に依存していて、その他の列の内容が何らかの方法で変化する場合は、関連するすべての列を再計算する必要があります。 PowerPivot ブックに変更が加えられると、Excel の Power Pivot は、既存の PowerPivotデータの分析を実行して再計算が必要かどうかを判断し、可能な限り最も効率的な方法で更新を実行します。
たとえば、テーブル 、Product、ProductCategory に関連するテーブル Sales があるとします。および Sales テーブルの数式は、他の両方のテーブルによって異なります。 Product テーブルまたは ProductCategory テーブルを変更すると、Sales テーブル内のすべての計算列が再計算されます。 これは、カテゴリ別または製品別に売上をロールアップする数式があると考える場合に適しています。 したがって、結果が正しいことを確認します。データに基づく数式を再計算する必要があります。
PowerPivot は、変更された値を確認するよりも完全な再計算の方が効率的であるため、テーブルに対して常に完全な再計算を実行します。 再計算をトリガーする変更には、列の削除、列の数値データ型の変更、新しい列の追加などの大きな変更が含まれる場合があります。 ただし、列の名前の変更など、一見些細な変更によって再計算がトリガーされる場合もあります。 これは、列の名前が数式の識別子として使用されるためです。
場合によっては、 PowerPivot によって、列を再計算から除外できる場合があります。 たとえば、Products テーブルから [Product Color] などの値を検索する数式があり、変更された列が Sales テーブルの [数量] である場合、Sales テーブルとProducts テーブルが関連していても、数式を再計算する必要はありません。 ただし、 Sales[Quantity] に依存する数式がある場合は、再計算が必要です。
依存列の再計算のシーケンス
依存関係は再計算の前に計算されます。 相互に依存する複数の列がある場合は、依存関係のシーケンスに従 PowerPivot 。 これにより、列が最高速度で適切な順序で処理されます。
取引
データを再計算または更新する操作は、トランザクションとして実行されます。 つまり、更新操作の一部が失敗した場合、残りの操作はロールバックされます。 これは、データが部分的に処理された状態に残らないようにするためです。 リレーショナル データベースと同様にトランザクションを管理したり、チェックポイントを作成したりすることはできません。
揮発性関数の再計算
NOW、RAND、TODAY などの一部の関数には固定値がありません。 パフォーマンスの問題を回避するために、通常、クエリまたはフィルター処理を実行しても、計算列で使用されている場合、そのような関数は再評価されません。 これらの関数の結果は、列全体が再計算されたときにのみ再計算されます。 このような状況には、外部データ ソースからの更新や、これらの関数を含む数式の再評価を引き起こすデータの手動編集が含まれます。 ただし、関数が計算フィールドの定義で使用されている場合、NOW、RAND、TODAY などの揮発性関数は常に再計算されます。