Google电子表格中的arrayformula sum

jas*_*son 18 google-sheets

你怎么样arrayformula()sum():

=sum(A1:H1)

我需要减少1000行.

pla*_*er0 24

使用 Google 表格中的新功能(自 2022 年 9 月 20 日起),您所需要的只是:

=BYROW(A:H; LAMBDA(x; SUM(x)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 哇。‘拉姆达’?看起来他们还添加了“MAP”,这是有问题的。 (4认同)
  • 我刚刚从这个答案中了解了 Google 表格中的整个行为水平。我没想到 Sheets 的功能如此强大。 (3认同)
  • @jason 是的,不再猜测 ArrayFormula 是否会按照您的预期工作!还应该注意的是,“MAP”适用于整个 2d 范围,因此如果您想转换每个单独的值,这会很方便。 (2认同)
  • 数组公式很棒。LAMBDA 非常棒。 (2认同)

Ada*_*amL 21

另外一个选项:

=ArrayFormula(SUMIF(IF(COLUMN(A1:H1),ROW(A1:A1000)),ROW(A1:A1000),A1:H1000))

  • 这是我之前升级过的问题。IMO,与旧表格相比,引用大型数组的数组公式在新表格中的性能似乎明显较差。当引用这样的整列时,请尽量确保空行尽可能少。 (2认同)
  • 我不明白为什么您要为`column()`使用范围。总是不是1吗? (2认同)

Jac*_*tra 6

这就是你要找的东西:

=MMULT(A1:H1000,TRANSPOSE(ARRAYFORMULA(COLUMN(A1:H1000)^0)))
Run Code Online (Sandbox Code Playgroud)

在我给出的Web应用程序上看到这个答案:https://webapps.stackexchange.com/a/53419/29140

注意:在新的Google电子表格上尝试过,没有成功.

  • 在新表格中,如果数组中有空白单元格,则MMULT将失败.解决方法是将第一个参数包装在`VALUE()`中. (5认同)

小智 5

在有效的两个答案(Jacob Jan Tuinstra和AdamL)中,Jacob给出了更好的答案。雅各布的跑得更快,更容易记住。

但是,为什么要充分利用Google表格会更容易使用疯狂的公式?

=ARRAYFORMULA(A2:A+B2:B+C2:C+D2:D+E2:E+F2:F+G2:G+H2:H) 
Run Code Online (Sandbox Code Playgroud)

在上述公式中,可以使用命名范围而不是引用范围。

=ARRAYFORMULA(range1+range2+range3+range4+range5+range6+range7+range8) 
Run Code Online (Sandbox Code Playgroud)

同样,您可以对跨工作表的行进行求和,而不会因为使用同一工作表中的列而陷入困境。

要修复公式以阻止空白行返回零,请使用以下命令:

=arrayFormula(if(isNumber(A2:A),A2:A+B2:B+C2:C+D2:D+E2:E+F2:F,G2:G,H2:H))
Run Code Online (Sandbox Code Playgroud)

请参阅:在Google论坛上查看Ahab的回答

有关很酷的总和公式,请参阅OtávioAlves Ribeiro在Google论坛上的答案

  • 由于您的解决方案适用于 8 列,因此在 100 列时就没那么有用了。 (3认同)
  • 同时,这个答案是完全有用的,比其他答案更有用。当我们需要做的只是:`=ARRAYFORMULA(IF(test for data in rows, A2:A+B2:B))`时,为什么要费力去记忆或查找复杂的公式模式呢? (2认同)