我正在学习使用数组公式,并且已经成功地完成了一些简单的事情,例如将两列添加到第三列中。例如,我可以将 =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 从 N1 开始,而您试图将其向上移动 -1 或一个单元格,这会将公式带出工作表。
试试这个公式:
=数组公式(
{“本月节省的金额”;
if(LEN(N2:N),N2:N-偏移(N2:N,-1,0),"")})
它使用 {}
来创建数组。查看更多信息:
https://support.google.com/docs/answer/6208276?hl=en
奖励。现在没有理由检查行号。
关于excel - Google 电子表格,在第一行中使用 ARRAYFORMULA 对列中上述单元格进行求和或减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43507822/