當您使用 Power Pivot 中的資料時,可能需要重新整理來源中的資料、重新計算計算結果欄中的公式,或更新使用資料模型的樞紐分析表。
本文說明資料重新整理和重新計算之間的差異,概述如何觸發重新計算,並說明控制重新計算的選項。
了解資料重新整理與重新計算
Power Pivot 同時使用資料重新整理和重新計算:
資料重新整理 表示從外部資料來源取得最新的資料。 Power Pivot 不會自動偵測外部資料來源中的變更。 若要引入更新的資料,請重新整理資料模型。
重新計算 表示更新活頁簿中所有包含公式的欄、表格、圖表和樞紐分析表。 因為重新計算公式會影響效能,所以請務必了解與每個計算相關聯的相依性。
重要
在重新計算公式之前,請勿儲存或發佈活頁簿。
手動與自動重新計算
根據預設,Power Pivot 會視需要自動重新計算,同時將處理所需的時間最佳化。 雖然重新計算可能需要一些時間,但這是一項重要的工作。 在重新計算期間,Power Pivot 會檢查資料行的相依性,並會在資料行變更、資料無效,或原本有效的公式發生錯誤時通知您。 不過,您可以選擇放棄驗證並只手動更新計算,特別是如果您正在使用複雜的公式或非常大型的資料集,並且想要控制更新時間。
手動和自動模式都有優點。 不過,請使用自動重新計算模式。 此模式會讓 Power Pivot 中繼資料保持同步,並防止因資料刪除、名稱或資料類型變更,或相依性遺失等原因造成的問題。
使用自動重新計算
當您使用自動重新計算模式時,對資料的任何變更若會造成任何公式的結果發生變更,則會觸發重新計算包含公式的整欄。 下列變更始終需要重新計算公式:
- 重新整理來自外部資料來源的值。
- 公式的定義已變更。
- 公式中參照的資料表或資料行名稱會變更。
- 新增、修改或刪除資料表之間的關聯。
- 已新增量值或計算結果欄。
- 活頁簿內的其他公式也已進行變更,因此應該重新整理依賴該計算的欄或計算。
- 插入或刪除列。
- 您套用了需要執行查詢來更新資料集的篩選條件。 篩選可以在公式中套用,或作為樞紐分析表或樞紐分析圖的一部分。
使用手動重新計算
使用手動重新計算以避免在準備就緒之前產生計算公式結果的成本。 手動模式在下列情況下特別有用:
- 您正在使用範本設計公式,並希望在驗證公式之前變更公式中使用的欄和表格名稱。
- 您知道活頁簿中的某些資料已變更,但正在使用未變更的不同欄,因此您想要延後重新計算。
- 您在具有許多相依性的活頁簿中作業,並想要延遲重新計算,直到您確定已進行所有必要的變更為止。
如果您將活頁簿設定為手動計算模式,Excel 中的 PowerPivot 不會執行任何公式驗證或檢查。 會產生下列結果:
- 任何您新增至活頁簿的新公式都會標幟為包含錯誤。
- 新計算欄中不會顯示任何結果。
若要設定活頁簿以手動重新計算
- 在 Power Pivot 中,選取 [設計>計算]>[計算選項>][手動計算模式]。
- 若要重新計算所有資料表,請選取計算選項> 立即計算。
活頁簿會檢查公式是否有錯誤,並更新含有結果的表格。 根據資料量和計算數目,活頁簿可能會暫時變得沒有回應。
重要
發佈活頁簿之前,請將計算模式變更回自動。 這項變更有助於避免在設計公式時發生問題。
疑難排解重新計算
相依性
當欄依賴於另一欄,而另一欄的內容以任何方式變更時,您可能需要重新計算所有相關的欄。 每當您變更 Power Pivot 活頁簿時,Excel 中的 PowerPivot 都會分析現有的 Power Pivot 資料,以判斷是否需要重新計算,並儘可能有效率的方式執行更新。
例如,假設您有一個資料表 [Sales],它與資料表 Product 和 ProductCategory 相關;而 [銷售] 資料表中的公式則取決於其他兩個資料表。 對 Product 或 ProductCategory 資料表進行任何變更,都會重新計算 Sales 資料表中的所有計算結果欄。 當您考慮到您可能有依類別或產品彙總銷售量的公式時,此行為就很合理。 為確保結果正確,您必須根據資料重新計算公式。
Power Pivot 一律會執行資料表的完整重新計算,因為完整的重新計算比檢查變更的值更有效率。 觸發重新計算的變更可能包括重大變更,例如刪除欄、變更欄的數值資料類型或新增欄。 然而,看似微不足道的變更,例如變更欄名,也可能會觸發重新計算。 之所以發生這種行為,是因為欄的名稱是因為在公式中做為識別碼。
在某些情況下,Power Pivot 會判斷它可以從重新計算中排除欄。 例如,如果您有一個公式可從 [產品] 資料表中尋找 [Product Color] 等值,而您變更的資料行是 [Sales] 資料表中的 [Quantity],則即使 [Sales] 和 [產品] 資料表相關,也不需要重新計算公式。 不過,如果您有任何依賴 於 Sales[Quantity] 的公式,則需要重新計算。
相依資料行的重新計算順序
Power Pivot 會在重新計算任何欄之前先計算相依性。 如果多個資料行彼此相依,Power Pivot 會遵循相依性的順序。 此順序可確保 Power Pivot 以正確的順序和最大速度處理欄。
交易
重新計算或重新整理資料的作業會以交易形式進行。 如果重新整理作業的任何部分失敗,其餘作業都會復原。 此行為可確保資料不會保留在部分處理的狀態。 您無法像在關聯式資料庫中那樣管理交易,也無法建立檢查點。
重新計算動態函數
某些函數例如 NOW、 或 RANDTODAY, 沒有固定值。 為了避免效能問題,如果您在計算欄中使用這些函數,執行查詢或篩選通常不會導致 Power Pivot 重新評估這些函數。 Power Pivot 只有在重新計算整欄時,才會重新計算這些函數的結果。 這些狀況包括從外部資料來源重新整理,或手動編輯資料,導致重新評估包含這些函數的公式。 不過,如果您在導出欄位的定義中使用了 、 RAND或 等TODAY可變更函數NOW,Power Pivot 一律會重新計算它們。