【问题标题】:Google Spreadsheet, SUM or MINUS of above cell in the column using ARRAYFORMULA in the first row在第一行使用 ARRAYFORMULA 列中上述单元格的 Google 电子表格、SUM 或 MINUS
【发布时间】:2017-04-19 23:40:34
【问题描述】:

我正在学习使用数组公式,并且已经成功地完成了一些简单的事情,例如在第三列中添加 2 列。例如,我可以将=arrayformula(B:B+C:C) 放在 D1 中,它会为每一行添加 B 和 C。

但现在我有一种情况,我想在同一列中减去两个数字。我想获取当前行中该列的值并从中减去前一行的值。如果没有数组公式,这很简单:在 O7 中我输入 =N7-N6 并将其复制下来,因此 O8 得到 =N8-N7 等。但这需要每次都复制下来 - 我可以用数组公式做同样的事情吗?

基本上,我可以做类似=arrayformula(B:B+(B-1):(B-1)) 的事情吗?

上下文:N 列是每月帐户余额。我想计算每个月的平衡变化量。所以对于第 7 行,=N7-N6 给了我这种差异。但是我正在将整个电子表格更改为数组公式,这样我就可以停止粘贴所有公式了,我被困在这个公式上,因为它比较的是同一列。

我正在尝试将所有内容都放入第 1 行,以便我的值和计算可以从第 2 行开始。例如,这是我在第 1 行中的公式之一:

arrayformula(if(row(A:A)=1,"Total gross income",if(LEN(B:B),B:B+C:C,"")))

不幸的是,如果我这样做,在 O 列(我最初询问的那个)中:

=arrayformula(if(row(A:A)=1,"Amount saved this month",if(row(A:A)>1,if(LEN(N:N),N2:N-N:N,""))))

或者这个:

=arrayformula(if(row(A:A)=1,"Amount saved this month",if(row(A:A)>1,if(LEN(N:N),offset(N:N,1,0)-N:N,""))))

每一行都偏离 1 - 应该进入第 3 行的结果进入第 2 行,等等。如果我这样做:

=arrayformula(if(row(A:A)=1,"Amount saved this month",if(row(A:A)>1,if(LEN(N:N),N:N-offset(N:N,-1,0),""))))

然后它给了我一个错误,因为偏移函数试图评估超出范围的东西(可能它从 N1 开始并试图获取 N1 上方 1 行的值?)

关于如何处理超出范围的错误有什么建议吗?

【问题讨论】:

  • 如果主要问题是偏移一整列,即N:N,您总是可以用N2:N999999 之类的东西代替,这样就足够了吗?

标签: excel google-sheets spreadsheet google-spreadsheet-api


【解决方案1】:

我认为错误是因为偏移范围 N:N 从 N1 开始,而您正试图将其移动 -1 或向上移动一个单元格,这会使公式脱离工作表。

试试这个公式:

=arrayformula( {"Amount saved this month"; if(LEN(N2:N),N2:N-offset(N2:N,-1,0),"")})


它使用{} 来创建一个数组。查看更多信息:

https://support.google.com/docs/answer/6208276?hl=en


奖金。现在没有理由检查行号。

【讨论】:

    猜你喜欢
    • 2022-09-24
    • 2015-11-29
    • 1970-01-01
    • 2023-02-03
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多