0

I have set automatic as workbook calculation mode, Enable iterative calculation for my Excel, 1 as Maximum Iterations, and 0.001 as Maximum Change. This setting permits thus circular reference in my worksheet.

So I put =D4+1 in D2, and =D2+1 in D4. Now the values of D2 and D4 are respectively 1 and 2. Now if I refresh the worksheet, their values will increment by 2 as expected. If I calculate only cell D2 (select the cell, edit formula mode, and then press enter), their values will increment by 2 too, whereas if I calculate only cell D4, their values will be reset to 1 and 2.

My question is why the comportment of calculation of D2 and D4 are different? That means even though they are circular reference, there is still an order (beginning and ending), then what is the rule for Excel to determine the beginning point and the ending point?

4

1 回答 1

2

这个页面

第一步与不涉及循环引用的重新计算(或完整计算,取决于如何调用计算)相同。这使得在循环引用之前的所有单元格都能被正确计算,并且循环引用中的单元格列表与它们的依赖项一起被识别。在这第一步中, Application.Iteration为 False。

第二步在每次迭代中发生一次:

循环引用中的单元格列表是逐页计算的,按字母表名称顺序排列。在每个工作表中,循环引用中的单元格和数组公式列表以及依赖于它们的所有单元格都是从左到右和从上到下计算的。(第一行中的所有列从左到右,然后是下一行......)。列表中的每个数组公式从左到右和从上到下计算为单个单元格块,因此如果要按列而不是按行计算,则必须使用多单元格列数组公式。
此计算忽略依赖关系树并依赖迭代计算过程来解决依赖关系。
不依赖于循环列表中的单元的易失单元不会在每次迭代时重新计算。

重复此步骤,直到达到迭代限制(最大迭代次数和每次迭代的最大单元更改)。在这第二步中, Application.Iteration为 True。

于 2013-08-07T18:47:04.810 回答