0

我正在学习使用数组公式,并且已经成功完成简单的事情,比如在第三列中添加2列。例如,我可以在D1中放入=arrayformula(B:B+C:C),并为每行添加B和C.在第一行使用ARRAYFORMULA的列中的上述单元格的电子表格,SUM或MINUS

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

基本上,我可以做点像=arrayformula(B:B+(B-1):(B-1))吗?

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

我试图让一切都变成第1行,所以我的价值观和计算可以在第二行开始。例如,这里是在第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,"")))) 

每一行的˚F1 - 结果应在第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行的值)

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

+0

如果主要问题是偏移了一个完整列,即'N:N',那么您总是可以放置类似'N2:N999999'的东西,这样做足够吗? –

回答

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


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

相关问题