如何在 Excel 中查找循环引用

用户在 Excel 中遇到的最常见的错误警告之一是“循环引用”。成千上万的用户有同样的问题,当一个公式直接或间接引用回自己的单元格时,就会出现这个问题,导致计算无限循环。

例如,单元格 B1 和 B2 中有两个值。当公式=B1+B2 输入到B2 时,就创建了一个循环引用; B2 中的公式会反复重新计算自身,因为每次计算时,B2 值都会发生变化。

大多数循环引用都是无意识的错误; Excel 会警告您这些。但是,也有预期的循环引用,用于进行迭代计算。工作表中意外的循环引用可能会导致公式计算错误。

因此,在本文中,我们将解释您需要了解的有关循环引用的所有信息,以及如何在 Excel 中查找、修复、删除和使用循环引用。

Excel中如何查找和处理循环引用

使用 Excel 时,我们有时会遇到循环引用错误,当您输入包含公式所在单元格的公式时会发生这种错误。基本上,当您的公式尝试自行计算时,就会发生这种情况。

例如,您在单元格 A1:A4 中有一个数字列,并且您在单元格 A5 中使用 SUM 函数 (=SUM(A1:A5))。单元格 A5 直接引用它自己的单元格,这是错误的。因此,您将收到以下循环引用警告:

收到上述警告消息后,您可以单击“帮助”按钮以了解有关错误的更多信息,或者单击“确定”或“X”按钮关闭错误消息窗口,结果为“0”。

有时,循环引用循环可能会导致计算崩溃或降低工作表性能。循环引用还可能导致许多其他问题,这些问题不会立即显现出来。所以,最好避免这些。

直接和间接循环引用

循环引用可分为两种类型:直接循环引用和间接循环引用。

直接参考

直接循环引用非常简单。当公式直接引用回自己的单元格时,会弹出直接循环引用警告消息。

在下面的示例中,单元格 A2 中的公式直接引用其自己的单元格 (A2)。

弹出警告消息后,您可以单击“确定”,但它只会导致“0”。

间接循环引用

当公式中的值引用回它自己的单元格而不是直接引用时,就会发生 Excel 中的间接循环引用。换句话说,循环引用可以由两个相互引用的单元格形成。

让我们用这个简单的例子来解释。

现在该值从值为 20 的 A1 开始。

接下来,单元格 C3 引用单元格 A1。

然后,单元格 A5 引用单元格 C3。

现在将单元格 A1 中的值 20 替换为如下所示的公式。每隔一个单元格都依赖于单元格 A1。当您在 A1 中使用任何其他先前公式单元格的引用时,会导致循环引用警告。因为,A1中的公式引用单元格A5,引用C3,单元格C3引用回A1,因此循环引用。

单击“确定”时,单元格 A1 中的值为 0,Excel 会创建一个链接线,显示跟踪先例和跟踪依赖项,如下所示。我们可以使用此功能轻松查找和修复/删除循环引用。

如何在 Excel 中启用/禁用循环引用

默认情况下,Excel 中的迭代计算处于关闭(禁用)状态。迭代计算是重复计算,直到满足特定条件。当它被禁用时,Excel 会显示一条循环引用消息并返回 0 作为结果。

但是,有时需要循环引用来计算循环。要使用循环引用,您必须在 Excel 中启用迭代计算,它允许您执行计算。现在,让我们向您展示如何启用或禁用迭代计算。

在 Excel 2010、Excel 2013、Excel 2016、Excel 2019 和 Microsoft 365 中,转到 Excel 左上角的“文件”选项卡,然后单击左窗格中的“选项”。

在 Excel 选项窗口中,转到“公式”选项卡并勾选“计算选项”部分下的“启用迭代计算”复选框。然后单击“确定”以保存更改。

这将启用迭代计算,从而允许循环引用。

要在以前版本的 Excel 中实现这一点,请执行以下步骤:

  • 在 Excel 2007 中,单击 Office 按钮 > Excel 选项 > 公式 > 迭代区域。
  • 在 Excel 2003 及更早版本中,您需要转到菜单 > 工具 > 选项 > 计算选项卡。

最大迭代次数和最大变化参数

启用迭代计算后,您可以通过指定启用迭代计算部分下的两个可用选项来控制迭代计算,如下面的屏幕截图所示。

  • 最大迭代次数 – 此数字指定公式在给出最终结果之前应重新计算的次数。默认值为 100。如果将其更改为“50”,Excel 将重复计算 50 次,然后才会给出最终结果。请记住,迭代次数越多,计算所需的资源和时间就越多。
  • 最大变化 – 它决定了计算结果之间的最大变化。该值决定了结果的准确性。数字越小,结果就越准确,计算工作表所需的时间也就越长。

如果启用了迭代计算选项,则只要工作表中有循环引用,您就不会收到任何警告。仅在绝对必要时启用交互式计算。

在 Excel 中查找循环引用

假设您有一个大型数据集并且收到循环引用警告,您仍然需要找出错误发生的位置(在哪个单元格中)以修复它。要在 Excel 中查找循环引用,请按照下列步骤操作:

使用错误检查工具

首先,打开发生循环引用的工作表。转到“公式”选项卡,单击“错误检查”工具旁边的箭头。然后只需将光标悬停在“循环引用”选项上,Excel 将显示循环引用中涉及的所有单元格的列表,如下所示。

单击列表中您想要的任何单元格地址,它将带您到该单元格地址以解决问题。

使用状态栏

您还可以在状态栏中找到循环引用。在 Excel 的状态栏上,它会显示带有循环引用的最新单元格地址,例如“循环引用:B6”(请参见下面的屏幕截图)。

在处理循环引用时,您应该知道一些事情:

  • 当启用迭代计算选项时,状态栏将不会显示循环引用单元格地址,因此您需要在开始查看工作簿以获取循环引用之前将其禁用。
  • 如果在活动工作表中找不到循环引用,状态栏只显示“循环引用”,没有单元格地址。
  • 您只会收到一次循环引用提示,单击“确定”后,下次不会再次显示该提示。
  • 如果您的工作簿具有循环引用,则每次打开它时都会向您显示提示,直到您解决循环引用或打开迭代计算为止。

删除 Excel 中的循环引用

查找循环引用很容易,但修复它并不那么简单。不幸的是,Excel 中没有任何选项可以让您一次删除所有循环引用。

要修复循环引用,您必须单独找到每个循环引用并尝试修改它,完全删除循环公式,或将其替换为另一个。

有时,在简单的公式中,您需要做的就是重新调整公式的参数,使其不再引用自身。例如,将 B6 中的公式更改为 =SUM(B1:B5)*A5(将 B6 更改为 B5)。

它将计算结果返回为“756”。

如果Excel循环引用很难找到,您可以使用Trace Precedents和Trace Dependents功能追根溯源,一一解决。箭头显示哪些单元格受到活动单元格的影响。

有两种跟踪方法可以通过显示公式和单元格之间的关系来帮助您删除循环引用。

要访问跟踪方法,请转到“公式”选项卡,然后单击“公式审核”组中的“跟踪先例”或“跟踪依赖项”。

追溯先例

当您选择此选项时,它会追溯影响活动单元格值的单元格。它绘制一条蓝线,指示哪些单元格影响当前单元格。使用跟踪先例的快捷键是 Alt + T U T.

在下面的示例中,蓝色箭头显示影响 B6 值的单元格是 B1:B6 和 A5。如下所示,单元格 B6 也是公式的一部分,这使其成为循环引用并导致公式返回“0”作为结果。

这可以通过将 SUM 的参数中的 B6 替换为 B5 来轻松解决:=SUM(B1:B5)。

追踪家属

跟踪依赖项功能跟踪依赖于所选单元格的单元格。此功能绘制一条蓝线,指示哪些单元格受所选单元格的影响。也就是说,它显示哪些单元格包含引用活动单元格的公式。使用依赖的快捷键是 Alt + T U D.

在以下示例中,单元格 D3 受 B4 影响。它依赖于 B4 的价值来产生结果。因此,迹依赖绘制了一条从 B4 到 D3 的蓝线,表明 D3 依赖于 B4。

在 Excel 中故意使用循环引用

不建议故意使用循环引用,但在极少数情况下,您可能需要循环引用才能获得所需的输出。

让我们通过一个例子来解释这一点。

首先,在 Excel 工作簿中启用“迭代计算”。启用迭代计算后,您可以开始使用循环引用来发挥自己的优势。

假设您正在购买一所房子,并且您想向您的经纪人提供房屋总成本的 2% 的佣金。总成本将在单元格 B6 中计算,佣金百分比(代理费)在 B4 中计算。佣金按总成本计算,总成本包括佣金。由于单元格 B4 和 B6 相互依赖,因此它创建了一个循环引用。

在单元格 B6 中输入计算总成本的公式:

=总和(B1:B4)

由于总成本包括代理费,我们在上面的公式中包括了B4。

要计算 2% 的代理费,请在 B4 中插入以下公式:

=B6*2%

现在单元格 B4 中的公式取决于 B6 的值来计算总费用的 2%,而 B6 中的公式取决于 B4 来计算总成本(包括代理费),因此循环引用。

如果启用了迭代计算,Excel 不会在结果中给您警告或 0。相反,单元格 B6 和 B4 的结果将如上所示计算。

默认情况下,迭代计算选项通常是禁用的。如果你没有打开它,当你在 B4 中输入公式时,这将创建一个循环引用。 Excel 将发出警告,当您单击“确定”时,将显示跟踪箭头。

而已。这就是您需要了解的有关 Excel 中的循环引用的全部内容。