2016-05-31 111 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计算全局:两个工作簿在同一时间:因此计算链更长,处理时间更长。