我正在使用Microsoft Excel 2016开发车辆单圈时间模拟。 到目前为止,我构建的电子表格非常复杂,涉及数千行和各列之间的许多循环引用,大约50个。
我遇到的问题是计算没有收敛:迭代(利用内置算法)永远不会停止并且值会继续变化;特别是,包含像“等于另一个单元格”之类的公式的单元格返回的值与该公式不符,与引用的单元格中的值略有不同。无论设置中的“最大变化”值如何,都会发生这种情况。
结果总体上符合预期,但是由于计算无休止,这些小的偏差使电子表格难以使用。
我意识到的一件事是,所有列都至少引用了另一列:鉴于缺少“初始猜测”,这可能引发问题吗?
无论如何,这个问题可能与算法的任何已知限制有关,还是可以通过调整设置或工作簿本身来解决?
感谢您提供的任何帮助。
答案 0 :(得分:0)
我以前有过这样的情况。我用来解决此问题的两个技巧是,首先将引用的依赖关系软化到差异的一小部分。像是,单元格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
我使用的另一个技巧是使循环中的一个单元格成为一个值(在记事本中保留公式文本的副本以备后用),然后将公式粘贴回该单元格中。这是获取循环初始条件的方法。
好问题!祝你好运!