【问题标题】:google gsheets array formula offset (referencing previous row in same column)谷歌表格数组公式偏移量(引用同一列中的前一行)
【发布时间】:2015-03-27 03:45:49
【问题描述】:

我正在尝试在 gsheets 中构建一个简单的银行登记簿。

数据如下所示:

Transaction       Debit   Credit   Balance    Formula
opening balance                    100
first             20               80         D3=D2-B3+C3  
second                     30      110        D4=D3-B4+C4

我想使用数组公式,但我无法让它处理对与数组公式在同一列中的另一个单元格的引用。

我在 D3 单元格中尝试过:

ArrayFormula(D2:D-B3:B+C3:C) 

但我得到一个循环引用错误。有什么想法吗?

【问题讨论】:

    标签: arrays google-sheets formula


    【解决方案1】:

    在单元格 D2 中,尝试:

    =ArrayFormula(if(isblank(A2:A),,mmult(transpose(if(transpose(row(B2:C))>=row(B2:C),if(row(A2:A)=2, 100, B2:B*-1+C2:C), 0)),row(B2:C)^0)))
    

    请注意,'startbalance' (100) 已在公式中编码。如果需要,请更改。

    【讨论】:

    • 做得很好。你能解释一下“if(transpose(row(B2:C))>=row(B2:C)”发生了什么吗?
    • 这部分创建一个矩阵,然后由 MMULT 使用。有关更多信息,请查看 Adam 的出色解释。 docs.google.com/a/open-school.be/spreadsheets/d/…。确保还检查第四个选项卡(工作表),您可以在其中看到这部分公式的示例。
    【解决方案2】:

    同理,简单一点

    =ArrayFormula(if(isblank(A2:A),,(mmult(1*(transpose(row(B2:C))<=row(B2:C)),C2:C-B2:B))))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 2018-12-31
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多