在 Excel 中删除或允许循环引用
在 Excel 中删除或允许循环引用
在使用Excel时,你是否遇到过公式无法正常计算,反而提示“循环引用”的情况?本文将详细介绍什么是循环引用,如何识别和解决循环引用问题,以及在某些特定情况下如何利用循环引用的功能。
你已输入公式,但它不起作用。 相反,你收到了有关“循环引用”的消息。 数百万人也有同样的问题,这是因为公式正在尝试计算自身。 下图显示了它的外观:
公式 =D1+D2+D3 会中断,因为它位于单元格 D3 中,并且正在尝试计算自身。 若要解决此问题,可以将公式移到另一个单元格。 按Ctrl+X剪切公式,选择另一个单元格,然后按Ctrl+V粘贴它。
有时,你可能想要使用循环引用,因为它们会导致函数迭代。 如果是这种情况,请跳到了解有关迭代计算的详细信息。
此外,若要了解有关编写公式的详细信息,请参阅Excel 中的公式概述。
另一个常见错误是使用包含对其自身的引用的函数;例如,单元格 F3 包含 =SUM(A3:F3)。 示例如下:
还可尝试以下方法之一:
- 如果您刚输入公式,则从该单元格开始,并检查您是否引用了单元格本身。 例如,单元格 A3 可能包含公式 =(A1+A2)/A3。 =A1+1(位于单元格 A1 中)等公式也会导致循环引用错误。
查找时,请检查是否存在间接引用。 在单元格 A1 中输入公式时,它使用 B1 中的公式,而该公式反过来引用单元格 A1,此时会发生这种情况。 如果这使您感到迷惑,则想象它会对 Excel 产生什么影响。
如果找不到错误,请选择“公式”选项卡,选择“错误检查”旁边的箭头,指向“循环引用”,然后选择子菜单中列出的第一个单元格。
检查单元格中的公式。 如果无法确定单元格是否是循环引用的原因,请在“循环引用”子菜单中选择下一个单元格。
重复步骤 1 至步骤 3 中的任意步骤或所有步骤,以继续检查和更正工作簿中的循环引用,直至状态栏中不再显示“循环引用”。
左下角的状态栏显示“循环引用”和循环引用的单元格地址。
如果其他工作表中有循环引用,但活动工作表中没有循环引用,则状态栏仅显示“循环引用”,没有单元格地址。
可以通过双击追踪箭头在循环引用所涉及的单元格之间移动。 箭头表示影响当前所选单元格数值的单元格。 通过选择“公式”,然后选择“跟踪引用”或“跟踪依赖项”来显示跟踪箭头。
了解循环引用警告消息
Excel 首次发现循环引用时,它将显示警报消息。 选择“确定”或关闭消息窗口。
关闭消息时,Excel 将在单元格中显示零或最后计算的值。 现在,您也许会说,“等等,是最后计算的值吗? ”是的。 在某些情况下,公式在尝试计算自身之前可以成功运行。 例如,使用IF 函数的公式可能会一直进行运算,直到用户输入一个让该公式计算自身的参数(公式正常运行所必须的一条数据)时为止。 上述情况发生时,Excel 会保留最后一次成功计算的数值。
如果您怀疑在某个不显示零的单元格中有循环引用,请尝试以下操作:
- 在编辑栏中选择公式,然后按 Enter。
重要提示 在许多情况下,如果创建包含循环引用的其他公式,Excel 将不会再次显示警告消息。 以下列表显示了显示警告消息的一些(但不是全部)方案:
在任何打开的工作簿中创建第一个循环引用实例
删除所有打开的工作簿中的所有循环引用,然后创建新的循环引用
关闭所有工作簿,创建新工作簿,然后输入包含循环引用的公式
打开包含循环引用的工作簿
在未打开任何其他工作簿时,打开工作簿,然后创建循环引用
了解迭代计算
有时,您可能希望使用循环引用,因为它们能使函数迭代重复,直到满足特定的数值条件。 这可能会减慢计算机的速度,因此,迭代计算在 Excel 中通常处于禁用状态。
除非您熟悉迭代计算,否则您可能不想使任何循环引用保持不变。 如果这样做,您可以启用迭代计算,但您需要确定公式应重新计算的次数。 当您启用迭代计算而未更改最大迭代次数或最大误差的值时,Excel 将在 100 次迭代后或迭代之间的所有循环引用误差值低于 0.001 后停止计算,以先满足的条件为准。 但是,您可以控制最大迭代次数和可接受误差的值。
公式选择“文件>选项”。 如果使用Excel for Mac,请选择“Excel”菜单,然后选择“首选项>计算”。
在“计算选项”部分中,选中“启用迭代计算”复选框。 在 Mac 上,选择“使用迭代计算”。
若要设置 Excel 进行重新计算的最大次数,请在“最多迭代次数”框中键入迭代次数。 迭代次数越高,Excel 计算工作表所需的时间就越长。
在“最大误差”框中,键入继续迭代所需的最小值。 这是所有计算值中的最小误差。 数值越小,结果就越精确,Excel 计算工作表所需的时间也越长。
迭代计算可能有三种结果:
解析收敛,这意味着达到稳定的最终结果。 这是理想情况。
解析分离,这意味着从一个迭代到另一个迭代的当前和先前的结果差异不断增加。
解析在两个值之间切换。 例如,第一次迭代后结果为 1,下一次迭代后结果为 10,再下一次迭代后结果为 1,依此类推。