重新計算 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 中的 Power Pivot 不會執行任何公式驗證或檢查,結果如下:

  • 你新增到工作簿的公式都會被標記為包含錯誤。
  • 新的計算欄位中不會顯示任何結果。

設定工作簿以進行手動重新計算

  1. Power Pivot 中,點擊 設計>計算>計算選項>手動計算模式
  2. 要重新計算所有表格,請點擊 「計算選項>立即計算」。
    工作簿中的公式會被檢查是否有錯誤,表格也會更新結果(如有)。 根據資料量與計算次數,工作簿可能會一段時間內無法回應。

重要

在發佈工作簿之前,你應該先把計算模式改回自動。 這有助於避免配方設計時出現問題。

故障排除 重新計算

相依性

當一個欄位依賴另一個欄位,且該欄位的內容有任何變化時,所有相關的欄位都可能需要重新計算。 每當 Power Pivot 工作簿有變更時,Excel 中的 Power Pivot 會分析現有資料,判斷是否需要重新計算,並以最有效率的方式進行更新。

例如,假設你有一個資料表 Sales,與 ProductsProductCategory 這兩個表相關;銷售 表中的 公式則依賴於其他兩個表。 產品或產品類別資料表的任何變更都會使銷售資料表中所有計算欄位重新計算。 這很合理,因為你可能有按類別或產品逐項匯總銷售的公式。 因此,為了確保結果正確;基於資料的公式必須重新計算。

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

在某些情況下,Power Pivot 可能會判定欄位可被排除在重新計算之外。 例如,如果你有一個公式可以從產品表查詢像是[產品顏色]這樣的值,而被修改的欄位在銷售表中是[數量],即使銷售表和產品表是相關的,公式也不需要重新計算。 然而,如果你有任何依賴 銷售[數量]的公式,則需要重新計算。

依賴欄位的重計算序列

相依性會在重新計算前計算。 如果有多個欄位彼此依賴,Power Pivot 會遵循相依序列。 這確保欄位能以正確順序和最高速度處理。

交易

重新計算或刷新資料的操作會以交易形式進行。 這表示如果刷新操作的任何部分失敗,剩餘的操作都會被回滾。 這是為了確保資料不會處於部分處理狀態。 你無法像關聯式資料庫那樣管理交易,也無法建立檢查點。

揮發性函數的重新計算

有些函數如 NOW、RAND 或 TODAY,沒有固定值。 為避免效能問題,查詢或過濾執行時,若用於計算欄位,通常不會重新評估這些函式。 這些函數的結果只有在整欄重新計算時才會重新計算。 這些狀況包括從外部資料來源重新整理,或是手動的資料編輯,進而造成包含這些函數的公式重新進行評估。 然而,像 NOW、RAND 或 TODAY 這類揮發性函數,若用於計算場的定義,則必然會重新計算。