您好,我有一个确实有效的公式,但只有当我选择文件 > 选项 > 启用交互式计算时才有效。
我有一列包含百分比
在右侧的列(H 列)中,我在该列的最后一行(第 124 行)中有以下公式:
=IF(OR(H124>=100%,H124<=-100%),$G124,$G124+H123)
我的目标是将前一天的百分比(本例中为单元格 H123)累计添加到当天的百分比(单元格 $G124),只要总和不大于 100% 或小于 -100% 即可。如果出现了 100% 或 -100%,我希望使用 $G124 中的单元格值重新开始计数。
我一直收到循环引用错误,然后在某处看到我可以转到文件 > 选项 > 启用迭代计算来帮助解决该错误。我宁愿不这样做,因为它不会对整个工作表产生积极影响,我宁愿使用正确的公式,这样我就不会使用会触发循环引用错误的公式。有什么建议可以让我成功吗?
答案1
您的问题是单元格不能引用自身(除非启用了迭代计算),并且您在计算单元格 H124 的值时尝试引用单元格 H124 的值,Excel 将此称为“循环”计算。
有几种方法可以解决这个问题,但最直接的两种方法是:
选项1:
使用“辅助”列。取出 if-true 公式,并将其放在 IEg 列中,单元格 I124 将是=$G124+H123
然后,不要对 H 列中的值执行测试,而是对 IEg 列中的值执行测试,单元格 H124 将是=IF(OR(I124>=100%,I124<=-100%),$G124,$I124)
您会注意到,只要累计百分比在范围内,H 列和 I 列就会相同,而只要累计百分比超出范围,H 列和 I 列就会不同。由于 I 列引用的是 H 列中的早期值,而不是其自身列中的早期值,因此它将延续 H 列中发生的修改。
选项 2:
不需要额外的列,但您需要更复杂的条件。您不能依赖 $H124 的结果来判断您的条件,因此您需要将底层计算构建到条件本身中。
例如,单元格 H124 将是=IF(OR(($G124+H123)>=100%,($G124+H123)<=-100%),$G124,$G124+H123)
我偏向于选项 1,因为它更容易了解正在发生的事情并且更容易维护,但由于某种原因,添加额外的列可能不合适,在这种情况下选项 2 非常好。