【问题标题】:How to calculate excel circular reference formula in php如何在php中计算excel循环引用公式
【发布时间】:2021-06-13 05:23:04
【问题描述】:

我们正在将 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 中计算相同结果有什么帮助吗?

【问题讨论】:

    标签: php excel excel-formula circular-reference


    【解决方案1】:

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

    根据结果迭代地重新计算值,直到获得所需的结果。

    【讨论】:

      【解决方案2】:

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

      VBAcode 可以当作伪代码:

      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 的公式中,因为它们根本没有用。

      【讨论】:

      • F Cell 的公式值是动态的,它并不总是 0 @Axel Richter。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多