2016-05-31 115 views
1

有人可以解釋下列段落中最後一句話的含義嗎?Excel重新計算

  • 爲什麼當我更改公式時重新計算新打開的工作表會更快?
  • 不應該爲相同的變化構建的依賴關係樹總是相同的,它將不得不經歷所有這些變化嗎?

的依賴關係樹通知Excel中哪些細胞依賴其他人的,或者等價地,其細胞的先例針對其他人。 Excel從這棵樹構建一個計算鏈。計算鏈按應按其計算順序列出包含公式的所有單元格。在重新計算過程中,如果Excel遇到依賴於尚未計算的單元格的公式,則會修改此鏈。在這種情況下,正在計算的單元格及其依賴項將向下移動。出於這個原因,計算時間通常可以在前幾個計算週期中打開的工作表中改進。

https://msdn.microsoft.com/en-us/library/office/bb687891.aspx

我也注意到,Excel的重新計算是慢了很多,當我有2個Excel文件(慢方式的2倍以上)開放。

任何人都可以解釋爲什麼 - 我使用易失性函數,但它比慢多了2倍多?

+0

第一個問題:如果A1是'= C1',C1是'= B1',那麼如果第一次計算所有要計算的單元格將排在第一位。在這種情況下,A1 - > C1。但是如果A1被重新計算,excel會發現C1沒有被計算出來,並將A1移到C1下面,然後計算C1 - > A1。如果第二次計算第一次執行C1的orde已經設置,並且這種方式不需要重新排序 - >現在計算整個工作表的速度現在更快 –

+0

,對於第二部分,迭代和對其他工作簿的引用也是因素,所以易失性函數經常會重新計算多次。這是以指數形式總結的,因此,只需要多一點時間來計算 –

回答

2

1)Excel的智能重算首先嚐試使用上次使用的計算順序。當它完成洗牌計算序列時,這通常是下一次重新計算的良好起點。但是,起點的好壞取決於你在下一次重算之前改變了多少。同時對於多核心和多線程calc,通過檢查最後一次發生的情況,還有更多的空間來改進下一個recalc。

2)使用2個excel文件打開Excel計算全局:兩個工作簿在同一時間:因此計算鏈更長,處理時間更長。