為協助您在規劃活頁簿重新計算時機的過程更順利,本節提供其他技術秘訣供您參考。 如需有關在活頁簿中重新計算和重新整理資料的一般資訊,請參閱下列主題:
相依性
當資料行與其他資料行相依,而其他資料行的內容以任何方式變更時,所有相關的資料行都可能需要重新計算。 每當變更 PowerPivot 活頁簿時,PowerPivot for Excel 都會執行現有 PowerPivot 資料的分析,以判斷是否需要重新計算,並且會盡可能以最有效率的方式執行更新。
例如,假設您有一份 Sales 資料表與 Product 和 ProductCategory 資料表相關,而 Sales 資料表中的公式同時相依於後兩個資料表。 對 Product 或 ProductCategory 資料表所做的任何變更,都將造成重新計算 Sales 資料表中的所有導出資料行。 只要考慮到可能有公式會依據分類或依據產品來累計銷售,這種做法也就很有道理。 因此,為了確定結果正確,以這些資料為基礎的公式都必須重新計算。
PowerPivot 一律會對資料表執行完整的重新計算,因為完整的重新計算比檢查變更的值更有效率。觸發重新計算的變更可能包含刪除資料行、變更資料行的數值資料類型,或加入新的資料行等主要變更。 不過,看似瑣碎的一些變更,例如變更資料行的名稱,也可能會觸發重新計算。 這是因為資料行的名稱會在公式中當做識別碼使用。
在某些情況下,PowerPivot for Excel 可能會決定資料行可以排除於重新計算之外。 例如,如果您的公式會從 Products 資料表查閱 [Product Color] 等值,而在 Sales 資料表中改變的資料行是 [Quantity],則即使 Sales 資料表與 Products 資料表相關聯,也不需要重新計算公式。 但是,如果您有任何公式與 Sales[Quantity] 相依,就需要重新計算。
相依資料行重新計算的順序
進行任何重新計算之前都會先計算相依性。 如果有多個資料行彼此相依,PowerPivot 會按照相依性的順序執行。 這可確保依正確順序以最快速度處理資料行。
交易
重新計算或重新整理資料的作業以「交易」(Transaction) 方式進行。 這表示如果重新整理作業的任何部分失敗,其餘的作業都會回復。 這可確保資料不會處於只處理部分的狀態。 您不能以管理關聯式資料庫或建立檢查點的方式來管理交易。
動態函數的重新計算
有些函數 (如 NOW、RAND 或 TODAY) 沒有固定的值。 為避免效能問題,若導出資料行使用了這類函數,查詢或篩選的執行通常不會造成函數重新進行評估。 只有重新計算整個資料行時,才會重新計算這些函數的結果。 這些狀況包括從外部資料來源重新整理,或是手動的資料編輯,進而造成包含這些函數的公式重新進行評估。 不過,如果在量值的定義中使用 (如 NOW、RAND 或 TODAY) 動態函數,則一定都會重新計算。