第一行中使用ARRAYFORMULA的列中的上述单元格的Google Spreadsheet,SUM或MINUS

时间:2017-04-19 23:40:34

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

我正在学习使用数组公式并且已经成功地做了一些简单的事情,比如在第三列中添加两列。例如,我可以将=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行?)

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

1 个答案:

答案 0 :(得分:0)

我认为错误是因为偏移范围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

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