excel - Google 电子表格,在第一行中使用 ARRAYFORMULA 对列中上述单元格进行求和或减

标签 excel google-sheets spreadsheet google-sheets-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 行的值?)

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

最佳答案

我认为该错误是由于偏移范围 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/

相关文章:

regex - 如何将 '+' 字符转换为 Google 表格中 REGEXMATCH 的正则表达式?

python - 尝试使用 sheet_name=None 为文档中的每个工作表运行 python pandas 脚本但不工作

excel - 如果 VBA.CVErr() 不能支持 vbObjectError 的 Long vartype..,应该如何使用它?

excel - 用于从其他应用程序切换到 Excel 的事件处理程序?

google-apps-script - 如何使用应用程序脚本更新现有图表的数据范围? [谷歌表格]

excel - 如何在3D公式中勾勒出多个列和选项卡的范围?

excel - 如何将一张工作表中的一列复制到另一张工作表中的另一列,同时跳过空白单元格?

ruby - 在 Ruby 电子表格中用逗号替换点

c# - 为什么在 Excel 中比较 1<' 或将任何数字与带有 < 的任何文本进行比较结果为真?

Phpspreadsheet - 时间单元格检索为 float