php中如何计算excel循环引用公式

问题描述

我们正在将 excel 表转换为 web base,因此我们需要在 web base 应用程序开发中应用相同的 excel(循环引用)逻辑。

当我们必须计算 F3 单元格的值时,它使用 G3 单元格的值,而 G3 单元格的公式也使用 F3 单元格值。我们需要在 PHP 中实现这个逻辑。

在excel中,我们有以下公式:

F3 = 0/590.07+(1.45+0.055*G3/1000)/8.42-0(结果是 = 0.21096279)

G3 = (38.2-F3*5.87)/(6.23+E3)*1000(结果是 = 5932.848864)

最大迭代次数:100

最大变化:0.001

是否有助于在 PHP 中计算相同的结果?

解决方法

使其非循环,然后将值赋给 F3 和 G3。

根据结果反复重新计算值,直到获得所需的结果。

,

Excel 中,如果启用了迭代计算,则只能计算循环引用。默认值是:使用最多 100 次迭代,如果值的变化低于 0.001,则停止迭代。所以你也需要这样做。

VBA可以作为伪代码的代码:

Sub CIRCULAR()
 E3 = 0
 F3 = 0
 G3 = 0
 maxDelta = 0.001
 For i = 0 To 100
  F3a = F3
  G3a = G3
  F3 = 0 / 590.07 + (1.45 + 0.055 * G3 / 1000) / 8.42 - 0
  G3 = (38.2 - F3 * 5.87) / (6.23 + E3) * 1000
  If Abs(F3a - F3) < maxDelta And Abs(G3a - G3) < maxDelta Then Exit For
 Next i
 resultF3 = F3
 resultG3 = G3
End Sub

顺便说一句:只有当 E3 包含 0 时,您的结果才是正确的。并且不清楚为什么 0/590.07-0 这两个词在 F3 中的公式中,因为它们根本没用。