我正在使用 Microsoft Excel 2016 开发车辆单圈时间模拟。
到目前为止,我构建的电子表格相当复杂,涉及数千行和列之间的许多循环引用,大约 50 个。
我遇到的问题是计算不收敛:迭代(利用内置算法)永远不会停止,值会继续变化;特别是,包含“等于另一个单元格”等公式的单元格返回不符合此类公式的值,与引用单元格中的值略有不同。无论设置中的“最大变化”值如何,都会发生这种情况。
结果总体上符合预期,但这些小偏差使电子表格难以使用,因为计算永无止境。
我意识到的一件事是所有列都至少引用了另一个:鉴于缺乏“初步猜测”,这是否会引发问题?
无论如何,这个问题是否与算法的任何已知限制有关,还是可以通过调整设置或工作簿本身来解决?
感谢您提供任何帮助。
最佳答案
我以前也有过这样的情况。我用来解决这个问题的两个技巧是第一个,将引用处的依赖性软化到差异的一小部分。就像,单元格 A1 可能等于单元格 B1,但也许让它更好......
=A1 + (B1 - A1) / 10
...我知道这看起来很疯狂,但你可以预测计算机会做什么。例如,假设它们从 0 和 100 开始。迭代进行:
B1 = 100
A1 = 0
A1 = 0 + (100) / 10 = 10
A1 = 10 + (100 - 10) / 10 = 19
A1 = 19 + (100 - 19) / 10 = 27.1
...
A1 ≈ 100 = B1
我使用的另一个技巧是使循环中的一个单元格成为一个值(在记事本中保留公式文本的副本以备后用),然后将公式粘贴回该单元格。这是如何获得循环的初始条件。
好问题!祝你好运!
关于Excel - 迭代计算收敛问题/无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51615808/