當您在 Power Pivot中使用數據時,不時需要重新整理來源中的數據、重新計算您在計算結果列中建立的公式,或確定數據透視表中呈現的數據是最新狀態。
本主題說明重新整理數據與重新計算數據之間的差異、提供如何觸發重新計算的概觀,並說明控制重新計算的選項。
了解數據重新整理與重新計算
Power Pivot 同時使用資料重新整理和重新計算:
數據重新整理 表示從外部數據源取得最新數據。 Power Pivot 不會自動偵測外部數據源中的變更,但可以從 Power Pivot 視窗手動重新整理數據,或在 SharePoint 上共用工作簿時自動重新整理數據。
重新計算 表示會更新活頁簿中包含公式的所有欄、表格、圖表和數據透視表。 由於公式的重新計算會產生效能成本,因此請務必瞭解與每個計算相關的相依性。
重要: 在重新計算活頁簿中的公式之前,您不應該儲存或發佈活頁簿。
手動與自動重新計算
根據預設, Power Pivot 會視需要自動重新計算,同時優化處理所需的時間。 雖然重新計算可能需要一些時間,但這是一項重要的工作,因為在重新計算期間,會檢查欄的相依性,而且如果數據行已變更、數據無效,或曾經在使用過的公式中出現錯誤,系統會通知您。 不過,您可以選擇放棄驗證,只手動更新計算,特別是如果您使用複雜的公式或非常大的數據集,並且想要控制更新的時間。
手動和自動模式都有優點;不過,我們強烈建議您使用自動重新計算模式。 此模式會保持 Power Pivot元數據同步處理,並避免因刪除數據、變更名稱或數據類型,或遺失相依性所造成的問題。
使用自動重新計算
當您使用自動重新計算模式時,任何會造成任何公式變更結果的數據變更,都會觸發整個包含公式之數據行的重新計算。 下列變更一律需要重新計算公式:
-
已重新整理來自外部數據源的值。
-
公式的定義已變更。
-
公式中參照的表格或欄名稱已變更。
-
已新增、修改或刪除資料表之間的關聯。
-
已新增量值或計算結果列。
-
已對活頁簿中的其他公式進行變更,因此應該重新整理相依於該計算的欄或計算。
-
已插入或刪除列。
-
您套用了需要執行查詢才能更新資料集的篩選。 此篩選可能已套用到公式中,或作為數據透視表或樞紐分析圖的一部分。
使用手動重算
您可以使用手動重新計算來避免在準備就緒之前產生計算公式結果的成本。 手動模式在這些情況中特別實用:
-
您是使用範本來設計公式,而且想要在驗證公式之前變更公式中所使用之欄和表格的名稱。
-
您知道活頁簿中的某些數據已變更,但您使用的欄並未變更,因此您想要延後重新計算。
-
您使用的活頁簿有許多相依性,而且想要延遲重新計算,直到您確定已進行所有必要的變更為止。
請注意,只要活頁簿設定為手動計算模式,Excel 中的 Power Pivot 就不會執行任何公式的驗證或檢查,併產生下列結果:
-
您新增至活頁簿的任何新公式都會標示為包含錯誤。
-
新的計算結果列中不會顯示任何結果。
若要設定活頁簿以進行手動重新計算
-
在 Power Pivot中,按兩下 [手動計算模式]> [設計> 計算> 計算選項]。
-
若要重新計算所有數據表,請按兩下 [ 計算選項 ]> [立即計算]。
活頁簿中的公式會檢查是否有錯誤,如果有的話,表格也會隨結果一併更新。 根據數據量和計算數目而定,活頁簿可能會在一段時間內無回應。
重要: 發佈活頁簿之前,您應一律將計算模式變更回自動。 這有助於避免在設計公式時發生問題。
疑難解答重新計算
相依性
當某欄依存於另一欄,而其他欄的內容以任何方式變更時,可能需要重新計算所有相關的欄。 每當對 Power Pivot 活頁簿進行變更時,Excel 中的 Power Pivot 會對現有的 Power Pivot數據執行分析,以判斷是否需要重新計算,並盡可能以最有效率的方式執行更新。
例如,假設您有一個與數據表[產品] 和 [ProductCategory] 相關的數據表[銷售]; Sales 表格中的公式取決於其他兩個數據表。 對 [產品 ] 或 [ProductCategory ] 數據表的任何變更,都會導致重新計算 Sales 數據表中的所有計算結果列。 當您認為可能有公式依類別或產品匯總銷售量時,這是合理的。 因此,請確定結果正確無誤;必須重新計算以數據為基礎的公式。
Power Pivot 一律會執行數據表的完整重新計算,因為完整的重新計算比檢查已變更的值更有效率。 觸發重新計算的變更可能包含刪除數據行、變更數據行的數值數據類型,或新增數據行等重大變更。 不過,像是變更欄名等看似重大的變更,也可能會觸發重新計算。 這是因為欄的名稱在公式中會用來做為標識碼。
在某些情況下, Power Pivot 可能會判斷數據行可以排除在重新計算之外。 例如,如果您有一個公式從 [產品] 數據表查閱 [產品色彩] 等值,而變更的數據行是 [銷售] 數據表中的 [數量],即使數據表的 [銷售] 和 [產品] 是相關的,公式也不需要重新計算。 不過,如果您有任何仰賴 Sales[Quantity] 的公式,則需要重新計算。
從屬數據行的重新計算順序
相依性是在任何重新計算之前計算。 如果有多個數據行相依, Power Pivot 依序相依。 這可確保以最大速度以正確的順序處理數據行。
交易
重新計算或重新整理數據的作業會以交易的形式執行。 這表示如果重新整理作業的任何部分失敗,則會復原其餘的作業。 這是為了確保數據不會留在部分處理的狀態。 您無法如在關係資料庫中一樣管理交易,或建立檢查點。
重新計算動態函數
NOW、RAND 或 TODAY 等某些函數沒有固定值。 為避免效能問題,如果在計算結果列中使用查詢或篩選,通常不會造成這類函數重新評估。 只有在重新計算整個數據行時,才會重新計算這些函數的結果。 這些狀況包括從外部資料來源重新整理,或是手動的資料編輯,進而造成包含這些函數的公式重新進行評估。 不過,如果函數用於匯出字段的定義,則一律會重新計算例如 NOW、RAND 或 TODAY 等動態函數。