【问题标题】:How to use array formula to return an array of sums in Excel如何使用数组公式在 Excel 中返​​回总和数组
【发布时间】:2012-03-13 14:07:58
【问题描述】:

例如,我们有

 1  2  4
 3  4  5
 4  5  5
 2  4  5

我想要一个返回 ARRAY = {7,12,14,11} 的数组公式注意它不是文本,它是一个可以在其他数组公式中使用的数组。

目前我正在使用 {=A1:A4+B1:B4+C1:C4+D1:D4},但是如果列数很大,我无法手动处理。

【问题讨论】:

  • @colinfang 您是否可以在数据中添加一个总和列(即使是临时的),然后从中获取一个数组?我认为这将是一个非常简单的解决方案。
  • @Gaffi 我希望公式能够动态引用数据源而无需任何临时单元格。以您的方式,如果删除临时列并更改数据源,那么结果将是错误的

标签: excel


【解决方案1】:

我认为这可以评估为所需的数组,并且可以扩展到更大的范围:

=MMULT(A1:C4,TRANSPOSE(COLUMN(A1:C4)^0))

【讨论】:

  • 我喜欢! +1 - 可能的替代方案=SUBTOTAL(9,OFFSET(A1:C4,ROW(A1:C4)-ROW(A1),0,1))
  • 谢谢你,我终于用这个了:MMULT(A1:C4,TRANSPOSE(IF(A1:C1,1,1)))
  • 对列求和:=TRANSPOSE(MMULT(TRANSPOSE(A1:C4),IF(A1:A4,1,1)))
  • 如果你想跳过一些行,你会怎么做?例如,假设您想要A1:C1A2:C2A4:C4
  • 感谢分享。这是救命稻草。一直在考虑如何使用新的溢出功能来做到这一点。
【解决方案2】:

当您的矩阵从 A1 开始时,您可以使用:

=VERKETTEN("{";SUMME(A1:C1); ",";SUMME(A2:C2);",";SUMME(A3:C3);",";SUMME(A4:C4);"}")

这当然是德文版。但是“SUMME”应该是 SUM 而“VERKETTEN”应该是 CONCATENATE。我相信你会在帮助中找到它。

那么它将是:

=CONCATENATE("{";SUM(A1:C1); ",";SUM(A2:C2);",";SUM(A3:C3);",";SUM(A4:C4);"}")

更短:

="{"&SUM(A1:C1)&","&SUM(A2:C2)&","&SUM(A3:C3)&","&SUM(A4:C4)&"}"

您可能需要使用可以处理循环等的脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 2018-09-05
    • 1970-01-01
    相关资源
    最近更新 更多