冷门:什么是循环引用?又有什么用?

职场   职场   2024-09-26 07:55   福建  
HI,大家好,我是星光

有朋友在会员群里提了一个问题:当打开工作簿的时候,弹出来一个信息提示框,说是存在一个或多个循环引用,可能导致计算结果不正确——这是啥子情况呦?

弹窗里的「循环引用」是工作表函数中的一个术语,指的是公式直接或间接地引用了公式自身所在单元格的

什么意思呢,我举两个简单的例子。

在A2单元格输入公式=A2+1。既要在A2单元格返回公式的计算结果,又要把A2单元格的值加1,系统就很懵逼——这就是直接引用自身的值所产生的循环引用。

又或者在A2单元格输入公式:

=B2+C2

再在C2单元格输入公式:


=ROUND(A2-D2-B2,2)

虽然C2的公式没有直接计算自身单元格的值,但它计算了A2,而A2又计算了C2——这就属于C2间接引用了自身的值,也会产生循环引用。


注意看我认真的而不迷人的小眼神,这里我们反复强调的是公式直接或间接地引用了所在单元格的,而非其它属性。


单元格有很多属性,堪称妻妾成群,只是其中之一,其它还有诸如行高、列宽、行号、列标等,引用这些属性不会产生循环引用。


例如,在A2单元格输入以下公式,虽然引用了自身,但可以分别正确的返回行号和列标。


=ROW(A2)=COLUMN(A2)
当你在Excel中第1次输入循环引用的公式时,系统会弹出开篇所示的提示框,问你是不是有啥奇奇怪怪的想法?

但当你把提示信息框关闭后,再次编写或运算包含循环引用的公式,系统就不搭理你了,它会默默的将循环引用的计算结果返回0

打个响指,以上就是循环引用产生的原因和导致的后果。


■1 如何找到循环引用


那么,如果Excel已经存在循环引用,或者说,你看到了提示循环引用的信息框,应该如何解决呢?

1,先找到存在循环引用的单元格。

在公式选项卡下,依次单击【错误检查】右侧的倒三角→【循环引用】,可以看到一个选项列表,显示了存在循环引用的单元格地址。


在该选项列表中,选中任一地址,系统就会自动跳转到相关单元格处。


第2步重新编写公式。

删掉存在循环引用的旧公式,重新梳理计算逻辑,编写新公式。

有朋友说了,我不想删掉旧公式,也不想编写新函数,但同时还不想它循环引用,还想它返回正确的结果——行不行?

摊手,这就好比你明知面前是个渣男,前进一步必然粉身碎骨,却依然坚持幻想浪子回头真爱一生,对此我还能说什么呢?我只能说——我知道你根本没那么坚强,不是你的就别再勉强~




2 循环引用有什么用


当然,并不是所有的循环引用都是渣男(冒饭了,真不是有可能是渣女的意思),合理使用循环引用也能解决一些实际问题,比如「寻找总和为指定‍值的发票组合」、「生成指定总和的随机值」等,不过,这通常属于高难度操作,正常情况下并不推荐一班的人使用


打个响指,举个例子。

我要发红包,我要发一万块钱的红包,除了钱以外谁也别拦着我,我要发给10个人,金额随机,但都要大于500且小于1500。

如上图所示,在B4单元格输入以下公式,向下复制填充到B4:B13区域即可。

=IF(  SUM(B$4:B$13)=$B$1,  B4,  RANDBETWEEN(500,1500))
公式的意思是如果B4:B13区域的总和等于B1单元格的指定金额,则返回自身,否则生成一个范围在500~1500之间的整数随机值。

公式输入完成后,依次单击文件→选项→公式,勾选启用迭代计算,将迭代次数设置大一点,确定之后,B列的公式就会返回正确的结果了


至于如何使用循环引用「寻找总和为指定值的发票组合」,可以点击以下图片跳转前往期推文


寻找总和为指定值的发票组合▲


……


这就是今天给大家分享的全部内容了,有啥表格问题随时可以在VIP会员微信答疑群中提问交流👇,挥挥手咱们下期再见ღ( ´・ᴗ・` )


需要系统学习Excel,却找不到优质教程?学习Excel的过程中遇到疑难问题,却找不到人及时作出解答?

加入我的付费社群,学习+训练+答疑,与6000+在线会员一起,同微软最有价值专家MVP同行,全面精进Excel之道

🚂>>~
加入我的付费会员,全面学习Excel
透视表 函数 图表 VBA PQ想学啥学啥
👀


本文由公众号“Excel星球”首发。

点击阅读原文系统学习Excel!

Excel星球
微软全球最有价值专家(Excel MVP),上千篇原创图文和视频教程随学随用,随用随查,建议常用Excel的职场人关注。
 最新文章