启用迭代计算(循环引用)时的计算顺序

时间:2013-08-06 15:45:40

标签: excel excel-formula excel-2010 circular-reference

我已将automatic设为workbook calculation mode,将Enable iterative calculation设为我的Excel,将1设为Maximum Iterations,将0.001设为Maximum Change }。此设置允许在我的工作表中进行循环引用。

所以我将=D4+1放在D2中,将=D2+1放在D4中。现在,D2D4的值分别为12。现在,如果我刷新工作表,它们的值将按预期增加2。如果我只计算单元格D2(选择单元格,编辑公式模式,然后按回车键),它们的值也会增加2,而如果我只计算单元格D4,它们的值将被重置到12

我的问题是为什么D2D4的计算结果不同?这意味着即使它们是循环引用,仍然有一个顺序(开始和结束),那么Excel确定起点和终点的规则是什么?

1 个答案:

答案 0 :(得分:1)

来自this page

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

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

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

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