在Excel中使用单次迭代循环引用

在Excel中使用单次迭代循环引用,excel,circular-reference,Excel,Circular Reference,Excel中的循环引用通过在“选项/公式”中设置“启用迭代计算”来启用。“最大迭代次数”值1可能是一个有趣的选择,但仍然存在问题 在某些时刻,我迫切需要用=1-TOTALS值替换列中特定单元格单元格中的错误值,其中TOTALS是包含多张表单结果的单元格,如=SUM(COLUMN) 通常,我在一个结构中有Excel(>2013)工作表,其中所有列的总和相同,例如,1000个值使用不同数据集的数据完成100%。假设您希望通过不更改工作簿结构、调用宏或每次调用解算器来坚持循环引用 我总是以手动、单调、

Excel中的循环引用通过在“选项/公式”中设置“启用迭代计算”来启用。“最大迭代次数”值1可能是一个有趣的选择,但仍然存在问题

在某些时刻,我迫切需要用
=1-TOTALS
值替换
列中特定单元格
单元格中的错误值,其中
TOTALS
是包含多张表单结果的单元格,如
=SUM(COLUMN)

通常,我在一个结构中有Excel(>2013)工作表,其中所有列的总和相同,例如,1000个值使用不同数据集的数据完成100%。假设您希望通过不更改工作簿结构、调用宏或每次调用解算器来坚持循环引用

我总是以手动、单调、重复地在单元格中输入正确的值作为结束

问题

循环引用向链接的单元格中添加了一个常量,我没有找到一种明确的方法将任何值“绑定”到给定的常量引用(在这种情况下,很容易,最终的总和应始终为1)。如果最大迭代次数为1,则计算正确,但第二次计算时,漂移开始

问题


是否有某种方法可以在
单元格中使用循环引用公式,允许循环引用存在,从而实现最大迭代次数为1的迭代计算,最重要的是,以某种方式将100%的结果固定在列末,从而使迭代不会漂移

您不需要循环公式

首先,我要命名:
LAST_ROW
,并用制作该工作表的excel版本的相应编号(可能是1048576)填充它

然后你可以简单地使用一个公式。例如,对于单元格
K10
,它将是:

=1 - SUM(OFFSET(K10,1-ROW(),0,ROW()-1,1)) - SUM(OFFSET(K10, 1, 0, LAST_ROW-ROW(), 1))

说明:

SUM(偏移量(,1-ROW(),0,ROW()-1,1))
给出此单元格上方所有内容的总和
SUM(OFFSET(,1,0,LAST_ROW-ROW(),1))
给出此单元格下所有内容的总和。

您不能将公式放在该特定单元格中吗?请记住,您希望该单元格的值为1减去该列中除特定单元格之外的所有内容的总和。。。所以理论上你不应该需要循环引用。有趣的问题。我提出了一个非循环的实际公式(使用
INDIRECT()
ADDRESS()
),但不幸的是excel认为它是循环的。。。