Excel - SUM 或 SUMIF 二维数组的所有列,其中行由水平函数过滤

Excel - SUM or SUMIF all columns of a 2D array where rows are filtered by a horizontal function

我想对多列求和,但仅限于求和大于 0 的行。一种可行的方法是添加一个额外的列,该列实质上排除了 SUM 小于 0 的行,然后对该额外列求和,如下面的屏幕截图所示。我的愿望是消除辅助列并仅基于 returns 相同结果的原始数据创建单个公式。我尝试将 FILTER() 包含在 SUMIF() 和其他一些可能性中,但无济于事。

注意:如果有帮助,我正在使用支持动态数组的 O365。提前致谢。

如果我理解你的意思,使用 MMult 函数将有助于将矩阵 A2:C4 转换为你所说的 E2:E4

-可以使用LET功能,如果你有Office365-Insider,

=LET(x,A2:C4,y,MMULT(x*1,SEQUENCE(COLUMNS(x))^0),SUM(y*(y>0)))

-或缺少 LET:

=SUM(MMULT(A2:C4*1,SEQUENCE(COLUMNS(A2:C4))^0)*(MMULT(A2:C4*1,SEQUENCE(COLUMNS(A2:C4))^0)>0))

我使用 x*1 的原因是为了避免在单元格留空时可能出现的错误。

G2中输入公式:

=SUMPRODUCT((MMULT(A2:C4,{1;1;1})>0)*MMULT(A2:C4,{1;1;1}))