在编程时,我们常常将变量值进行增减后再赋值给该变量,例如:
在编程时,我们常常将变量值进行增减后再赋值给该变量,例如:
i = i + 1
然而,在Excel工作表中,如果你在单元格中输入包含该单元格值自增或自减的公式,就会显示循环引用警告信息。如下图1所示,在工作表单元格B2中输入公式:
=B2+1
将会显示循环引用警告,并且显示的值为0。
图1
那么,什么是循环引用呢?
当公式直接或间接地引用单元格自身时,就会导致循环引用。
在这种情形下,可以通过设置“Excel选项”的“公式”中的“启动迭代计算”来解决。如下图2所示,选中“启动迭代计算”复选框,其默认的最多迭代次数为100。
图2
设置完后,可以看到图1中单元格B2中的值变为100,如下图3所示。
图3
又如,下图4所示,单元格C4和单元格C7存在循环引用。
图4
因此,应按图2“启用迭代计算”来获得如下图5所示的正确结果,。
图5
在很多情形下,循环引用是一种很好的解决方案。例如,仿真模拟动画。
下面的例自来自chandoo.org,使用循环引用在工作表中实现动画效果,如下图6和图7所示。
图6
图7(注:由于运算速度非常快,在我的工作簿中没有实现这种数字和图形逐渐增加的效果)
这个示例使用了循环引用和条件格式。在图6所示的工作表中,在单元格B4中的公式为:
=IF(B7=”是”,IF(B4>$B$6,B4,B4+1),0)
并且在单元格B4中应用条件格式,如下图8所示。
图8
其他单元格中的公式和设置类似。
使用循环引用,应注意下列事项:
必须启用迭代计算,如上图2所示。
会使工作簿变慢,因为Excel要做大量的计算。
循环引用计算过程中的值不能在图表中使用,因为Excel图表只是获取单元格中的最终值。
如果你的工作簿中有大量的数据且存在循环引用错误,则可以使用功能区“公式”选项卡“公式审核”组中“错误检查——循环引用”,来找到循环引用的单元格,如下图9所示。或者,Excel会使用追踪线标出循环引用的单元格,如上图4中的蓝色箭头线所示。