【问题标题】:Circular Dependency in Google SheetsGoogle表格中的循环依赖
【发布时间】:2016-04-13 14:01:58
【问题描述】:

我正在尝试在 Google 表格中为联名帐户创建与支票登记簿等效的内容。目标是根据贷方和借方以及总体余额来跟踪每个人在帐户中的余额。

我设置的列是

  • 答:日期,
  • B:说明,
  • C:借方(第 1 人),
  • D:学分(人 1),
  • E:余额(人 1),
  • F:借方(第 2 人),
  • G:学分(第 2 个人),
  • H:平衡(人 2),
  • 和我:平衡(整体)。

我遇到麻烦的是计算个人余额的公式。我在 Excel 中设置它的方式是使用如下公式:

(在 H3 行)

=H2-F3+G3

因此,这将从第 2 行中取出该人的余额,为第 3 行添加任何贷方并减去任何借方,然后将该值插入到单元格 H3 中。我已将其设置为自动将公式复制到添加的每个新行,因此每次有新事务时我都不必手动执行。

我目前在 Google 表格 H3 单元格中的公式是:

=ARRAYFORMULA(H2:H-F3:F+G3:G)

单元格 H2 具有静态值,因为它是该列的起点。上面的公式给了我一个循环依赖错误,我不知道为什么;我根本不相信它引用单元格 H3,但我刚开始使用 Google 表格,所以我对数组公式的理解可能不正确。

任何有关如何解决此问题的帮助将不胜感激。

【问题讨论】:

    标签: google-sheets formulas array-formulas


    【解决方案1】:

    诚然,我从未使用过 ARRAYFORMULA 函数,但我认为问题在于您的公式存在于 H 列中,但在它试图计算的内容中引用了整个 H 列(H2:H 部分表示它作用于整个列,但由于结果也存储在 H 列中,因此它成为循环依赖)。

    这可能不是一个很好的解决方案,但您可以回到原来的公式:

    =H2-F3+G3
    

    然后简单地将公式一直“拖”到您的列中。

    如果您对 ARRAYFORMULA 函数一心一意,则必须将结果存储在公式 (G,F,H) 中使用的 3 列之一之外的列中。

    【讨论】:

    • 我只会使用我已经拥有的公式,但由于我将使用的行数没有固定,我希望它在插入时自动将公式添加到下一行。我想我可以使用具有相同公式的单独列并引用该列,然后隐藏该列。
    • 你看过 App Scripts 吗?您可以使用 onEdit 或 onChange 电子表格触发器做一些事情,可以查看(例如)G3 和 F3 中是否存在值但 H3 为空,然后它可以自动将适当的公式添加到单元格中:@ 987654321@
    【解决方案2】:

    将此公式粘贴到 H3 中:

    =ArrayFormula( SUMIF(ROW(F3:F),"<="&ROW(F3:F),G3:G)
                  -SUMIF(ROW(F3:F),"<="&ROW(F3:F),F3:F)
                  +H2)
    

    答案是关于使用 ArrayFormula 求累积和。这是亚当 (@AdamL) sulution.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 2021-10-02
      • 1970-01-01
      相关资源
      最近更新 更多