重新計算 Power Pivot 中的公式

套用到
Microsoft 365 Excel Excel 2024 Excel 2021 Excel 2019 Excel 2016

當您在 Power Pivot 中使用資料時,可能需要不時地從來源重新整理資料、重新計算您在計算結果欄中建立的公式,或確定樞紐分析表中呈現的資料是最新的。

本主題說明重新整理資料與重新計算資料之間的差異,概述如何觸發重新計算,並說明控制重新計算的選項。

了解資料重新整理與重新計算

Power Pivot 同時使用資料重新整理和重新計算:

資料重新整理 代表從外部資料來源取得最新的資料。 Power Pivot 不會自動偵測外部資料來源中的變更,但可以從 Power Pivot 視窗手動重新整理資料,或者如果活頁簿是在 SharePoint 上共用,則可以自動重新整理資料。

重新計算 表示更新活頁簿中所有包含公式的欄、表格、圖表和樞紐分析表。 由於重新計算公式會產生效能成本,因此請務必了解與每個計算相關聯的相依性。

重要

在重新計算活頁簿中的公式之前,您不應該儲存或發佈活頁簿。

手動與自動重新計算

根據預設,Power Pivot 會視需要自動重新計算,同時將處理所需的時間最佳化。 儘管重新計算可能需要時間,但這是一項重要的任務,因為在重新計算過程中,會檢查欄的相依性,如果欄已更改、資料無效或公式中出現錯誤,您將收到通知。 不過,您可以選擇放棄驗證,只手動更新計算,特別是當您使用複雜的公式或非常大型的資料集,並且想要控制更新時間時。

手動和自動模式都有優點;不過,我們強烈建議您使用自動重新計算模式。 此模式會讓 Power Pivot 中繼資料保持同步,並防止因刪除資料、變更名稱或資料類型,或遺失相依性而造成的問題。 

使用自動重新計算

當您使用自動重新計算模式時,若對資料進行任何變更,如其導致任何公式的結果變更,都會觸發對包含公式的整欄的重新計算。 下列變更始終需要重新計算公式:

  • 已重新整理來自外部資料來源的值。
  • 公式的定義已變更。
  • 已變更公式中參照的資料表或資料行名稱。
  • 已新增、修改或刪除資料表之間的關聯。
  • 已新增新的量值或計算結果欄。
  • 已對活頁簿內的其他公式進行變更,因此應重新整理依賴該計算的欄或計算。
  • 已插入或刪除列。
  • 您套用了需要執行查詢來更新資料集的篩選條件。 篩選可能已套用在公式中,或作為樞紐分析表或樞紐分析圖的一部分。

使用手動重新計算

您可以使用手動重新計算來避免產生計算公式結果的成本,直到您準備好為止。 手動模式在下列情況下特別有用:

  • 您正在使用範本設計公式,並希望在驗證公式之前變更公式中使用的欄和表格名稱。
  • 您知道活頁簿中的某些資料已變更,但正在使用尚未變更的不同欄,因此您想要延後重新計算。
  • 您在具有許多相依性的活頁簿中作業,並想要延遲重新計算,直到您確定已進行所有必要的變更為止。

請注意,只要活頁簿設為手動計算模式,Excel 中的 PowerPivot 就不會對公式執行任何驗證或檢查,而會產生下列結果:

  • 任何您新增至活頁簿的新公式都會標幟為包含錯誤。
  • 新的計算欄中不會顯示任何結果。

若要設定活頁簿以手動重新計算

  1. Power Pivot 中,按一下 [設計>計算]>[計算選項>][手動計算模式]。
  2. 若要重新計算所有資料表,請按一下 [ 計算選項] [>立即計算]。
    系統會檢查活頁簿中的公式是否有錯誤,而如果有結果,則會更新表格。 根據資料量和計算數目的不同,活頁簿可能會在一段時間內沒有回應。

重要

發佈活頁簿之前,請務必將計算模式變更回自動。 這有助於避免在設計公式時發生問題。

疑難排解重新計算

相依性

當一欄相依於另一欄,而另一欄的內容以任何方式變更時,所有相關欄都可能需要重新計算。 每當 Power Pivot 活頁簿進行變更時,Excel 中的 PowerPivot 會對現有的 Power Pivot 資料進行分析,以判斷是否需要重新計算,並儘可能有效率的方式執行更新。

例如,假設您有一個資料表 [Sales],它與資料表 ProductProductCategory 相關;而 [銷售] 資料表中的公式則取決於其他兩個資料表。 對 ProductProductCategory 資料表進行任何變更,都會重新計算 Sales 資料表中的所有計算結果欄。 考慮到您可能有按類別或產品彙總銷售量的公式,這就很合理。 因此,為了確保結果是正確的;必須重新計算根據資料的公式。

Power Pivot 一律會執行資料表的完整重新計算,因為完整的重新計算比檢查變更的值更有效率。 觸發重新計算的變更可能包括刪除欄、變更欄的數值資料類型或新增欄等重大變更。 然而,看似微不足道的變更,例如變更欄名,也可能會觸發重新計算。 這是因為欄的名稱是用來做為公式中的識別碼。

在某些情況下,Power Pivot 可能會判斷可以從重新計算中排除欄。 例如,如果您有一個公式可從 [產品] 資料表中查詢 [Product Color] 等值,而變更的資料行為 [Sales] 資料表中的 [Quantity],則即使 [Sales] 和 [產品] 資料表相關,也不需要重新計算公式。 不過,如果您有任何依賴 於 Sales[Quantity] 的公式,則需要重新計算。

相依資料行的重新計算順序

相依性會在任何重新計算之前進行計算。 如果有多個相互相依的欄,Power Pivot 會遵循相依性的順序。 這樣可以確保以最大速度以正確的順序處理列。

交易

重新計算或重新整理資料的作業會以交易形式進行。 這表示如果重新整理作業的任何部分失敗,其餘的作業都會復原。 這是為了確保資料不會處於部分處理狀態。 您無法像在關聯式資料庫中那樣管理交易,或建立檢查點。

重新計算動態函數

某些函數 ,例如 NOW、RAND 或 TODAY,沒有固定值。 為了避免效能問題,如果在計算欄中使用這類函數,執行查詢或篩選通常不會導致重新評估這些函數。 只有在重新計算整欄時,才會重新計算這些函數的結果。 這些狀況包括從外部資料來源重新整理,或是手動的資料編輯,進而造成包含這些函數的公式重新進行評估。 不過,如果在計算欄位的定義中使用 NOW、RAND 或 TODAY 等可變更函數,則一律會重新計算該函數。