循环参考误差Excel 2013

循环参考误差Excel 2013,excel,excel-2013,circular-reference,Excel,Excel 2013,Circular Reference,我有一张excel表格,需要在其中一个单元格中添加if语句。让我们将单元格D13称为X,将单元格E13称为Y。基本上,我需要做的是确保如果X>=1,那么Y=Y+(0.5*X)。但是,我知道我不能只说“E13+0.5*D13”,因为单元格正在引用自身,E13是我需要更改的单元格的值。当我这样做时,我会得到一个“循环引用错误”。有没有办法使用相同的公式来确保我的单元格E13是自身的值加上D13*0.5?我不想放置另一个单元格并使用此公式,因为它是多余的。这听起来在概念上是不可能的,因为Y单元格不能同

我有一张excel表格,需要在其中一个单元格中添加if语句。让我们将单元格D13称为X,将单元格E13称为Y。基本上,我需要做的是确保如果X>=1,那么Y=Y+(0.5*X)。但是,我知道我不能只说“E13+0.5*D13”,因为单元格正在引用自身,E13是我需要更改的单元格的值。当我这样做时,我会得到一个“循环引用错误”。有没有办法使用相同的公式来确保我的单元格E13是自身的值加上D13*0.5?我不想放置另一个单元格并使用此公式,因为它是多余的。

这听起来在概念上是不可能的,因为Y单元格不能同时存储数字和引用该数字的公式。“包含自身价值加上……”的概念本身似乎是不可能的。除了添加第三个单元格之外,我看不出有任何解决办法。

您需要重新思考您的处理逻辑。使用公式时,您会遇到循环引用错误,正如上面的注释所示


如果要避免循环引用,可能需要使用VBA进行计算,并将计算结果写入单元格。这可以通过工作表更改事件完成。它可以监视单元格,在单元格更改时触发,使用单元格输入值,执行计算并将结果写入同一单元格。

在这种情况下,我建议您使用3列而不是两列。首先,将D13作为X,将E13作为Y。然后需要将F13添加为Y2

D13从任何地方拉。E13从任何地方牵引。F13中的公式用于检查是拉取Y的原始值还是新值,如下所示:

=IF(D13>=1, E13+.5*D13,D13)
这表示:如果X>=1,使F13中的新Y值等于Y+.5*X。否则,使其等于Y的原始值


然后,无论您要在哪里引用E13(旧的“Y”值),请改为引用F13(这将拉取任何合适的“Y”值)。

您可以强制excel迭代,但您似乎有一个正确的循环引用,DEO不会收敛到一个数!嗯,这是一个循环引用。你期待什么?你怎么能修好它?你说的是“给我看看价值加五的价值”。建议-在您尝试编写代码(无论是用编程语言还是Excel)之前,您需要从概念上解决它。在这种情况下,这意味着您需要用数学方法求解它。你将如何建立一个示例公式来解决你正在尝试的问题?“我不想放置另一个单元格并使用这个公式,因为它是多余的。”如果可能的话,它是唯一的“多余”的另一种方式(它不是)。但除此之外,不要担心在Excel中使用额外的一两个单元格;它不是一种喜欢简洁的格式。@不要害怕扩展Excel中使用的单元格数量;它不应该像任何其他编程语言一样对待,因为简洁性通常是不可能的,并且实际上极大地增加了复杂性。学会将你正在做的计算与你正在做的显示分开,让你正在做的计算尽可能冗长。