当你在一个单元格中有一个公式时,就会发生循环引用——这个公式本身就使用了单元格引用(它是在其中输入的)进行计算。如果这句话看起来有点令人困惑,那么在本教程结束时,不要担心它会变得有意义。
简单地说,当公式直接或间接引用回自己的单元格时,就会发生循环引用,从而产生无休止的计算循环。如果不停止这种无休止的引用循环,每次都会不断更改单元格的值。
为了快速理解,这里有一个例子。
在我们的例子中,a列中有几个数字,我们试图使用A7单元格中的sum函数来计算它们的和。但在SUM函数中,我们已经将范围传递为A1:A7。

由于提供的范围还包括A7单元格(需要在其中填充结果),因此它创建了一个无休止的循环,因为Excel只是在单元格A7中不断添加新值,而单元格A7则不断递增。
这会触发Excel的循环引用警告:“有一个或多个循环引用,公式直接或间接引用了自己的单元格。这可能会导致它们计算错误。请尝试删除或更改这些引用,或将公式移动到不同的单元格。”。
请记住,这不是一个错误,因为它不会停止进一步的计算或要求用户更改它们。这是一个警告,警告用户他们可能有错误的计算。
直接和间接循环引用
循环引用可分为两种类型——1)直接循环引用2)间接循环引用。让我们先试着理解这两个。
直接循环引用
直接循环引用非常简单。当单元格中的公式直接引用自己的单元格时,会显示直接循环引用警告消息。
例如,请参阅下面的数据。

单元格B8中的公式指的是它自己。当用户应用诸如求和之类的函数或手动使用B8的参考时,将显示直接循环参考警告。
一旦出现警告,用户可以单击“确定”,但结果只会为零。

这是Excel中直接循环引用的一个示例。
间接循环引用
顾名思义,当公式中的值引用其单元格时,会发生间接循环引用,而不是直接引用,而是在某种级别上引用。请参阅下面的简单示例以更好地理解。
为了创建间接循环引用示例,我们必须使用从第一个单元格开始的值编写一系列公式。
例如,数据的填充方式是对角线是前面对角线的平方,如您所见。

现在数据从值为10的A1开始,每隔一个对角线直到D4依赖于A1。如果用户使用A1中任意对角线的引用,它将创建一个循环引用警告。让我们试试吧。
如下面的屏幕截图所示,Excel甚至创建了一个显示“先决条件”和“从属条件”的链接行。

由于这是一个循环引用问题,因此会导致值为0。
现在,让我们试着看看并理解如何在excel中找到循环引用问题。
如何在Excel中查找循环引用
然而,当它发生时,您会得到循环引用警告,您仍然需要弄清楚错误发生在哪个单元格中。在知道错误的确切单元格位置后,将更容易处理和修复它。
当您使用大型数据集时,这些方法特别有用。
1) 功能区中的“错误检查”下拉列表
以下是如何使用功能区在Excel中查找循环引用。
打开出现循环引用的工作表。
转到“公式”选项卡,然后单击“错误检查”下拉菜单。

从下拉菜单中选择“循环引用”。
在这里,Excel将显示工作表中的所有循环引用。
点击你想要的任何一个循环引用,它会把你带到那个特定的单元格来解决问题。
正如您在上面的屏幕截图中看到的,我们正在使用的工作表中有1个循环引用。
2) 使用状态栏
使用状态栏查找循环引用非常容易。如果工作表中存在循环引用,用户将能够在工作表名称下方的状态栏中看到它。

注意:它只显示最新的循环引用,用户可以从那里回溯。
迭代计算
迭代计算是Excel中一个有趣的功能。迭代计算的意思是,如果用户像往常一样禁用它们,Excel将返回“循环引用”提示,并在单元格中返回0,而不是实际结果。这是因为这是一个无休止的循环。
现在,问题是,如果你想让Excel坐下来,让你在不为那些讨厌的循环引用警告而烦恼的情况下完成你的工作,你可以启用迭代计算,它将允许你执行计算。不仅如此,它还允许您设置固定数量的最大迭代。
如果希望启用迭代计算,可以设置允许的迭代次数。因此,您可以停止循环引用无限循环,并可以对此类计算进行一点点控制。
如何在Excel中启用/禁用迭代计算
现在,我们已经确定了迭代计算的工作方式,让我们向您展示如何在Excel中启用或禁用迭代计算。按照以下步骤启用或禁用excel中的迭代计算。
转到“文件”选项卡。
单击“选项”。
将打开“Excel选项”对话框。单击左列中的“公式”。

在这里,“启用迭代计算”选项可用。用户只需勾选复选框即可启用。用户还可以设置最大迭代次数和最大更改次数。
启用迭代计算后,您将看到计算不会产生0,但在循环引用的情况下会产生结果。
最大迭代次数和最大更改参数
迭代计算的两个参数是:
最大迭代次数:这是Excel在计算最终结果时将运行的循环。您可以根据需要进行设置。请记住,更多的迭代意味着Excel需要更多的处理,这反过来会使用更多的资源和计算机的处理能力。这也需要更多的时间。
最大变化:最大变化是迭代进一步移动所需达到的值。这关乎结果的准确性。将此值设置为较小值,因为它将产生准确的结果。默认的“最大变化”为0.001。
有意使用循环引用
有意使用循环引用不是一个好主意,尽管有时它可以帮助你摆脱开发不良的逻辑或公式。但根本不建议这样做。然而,出于教育目的,让我们试着了解如何通过深思熟虑的循环引用来让事情发挥作用。
第一步是在Excel中启用迭代计算。一旦启用了“迭代计算”并设置了最大迭代次数,就可以开始使用循环引用来获得好处。
让我们用一个例子来证明这一点。
假设用户需要以两个单元格相互依赖的方式操作数据,从而导致循环引用问题。由于启用了迭代计算,因此不会出现提示。
为什么我们应该避免故意使用循环引用?
完全不建议在Excel中使用循环引用。有意使用循环引用是一种使事情正常工作的狡猾方法,在与迭代计算一起使用时会消耗大量资源和处理能力。它通常会产生不希望的或不准确的结果,当你不得不修复其中的一些结果时,这些结果可能会引起沮丧。
如何修复Excel中的循环引用
在Excel中修复循环引用不是一次单击就能完成的。要处理循环引用,必须逐个消除它们。您可以追溯到源并删除起始公式来修复它,也可以逐个删除它。
有两种跟踪方法可以通过跟踪公式和单元格之间的关系来删除循环引用。
要访问跟踪方法,您必须遵循以下步骤:
转到Excel中的“公式”选项卡
“追踪引用单元格”和“追踪从属单元格”选项在那里可用。

这些跟踪功能可以通过在响应循环引用的单元格之间绘制一条线来提供连接引用的路径,从而帮助用户修复循环引用。
两个跟踪选项的工作方式如下:
跟踪先例
跟踪先例功能跟踪当前单元格所依赖的单元格。这些单元格是当前公式所需数据所依赖的单元。此选项将绘制线条,以判断哪些单元格正在影响活动单元格。
跟踪从属项
跟踪依赖项功能跟踪依赖于活动单元格的单元格,这些单元格依赖于当前单元格以获取生成结果所需的数据。此功能将为依赖于活动单元格的单元格绘制线。
所以,这都是关于Excel中的循环引用。希望到目前为止,您已经很清楚循环引用是如何工作的,如何查找/修复它们,以及如果您愿意,如何使用它们。