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