Google Sheets - 计算行结果总和 - 使用单行公式

Google Sheets - Calculate sum of row results - by using one-liner formula

在某些列中有如下公式:

=SUM(MMULT(IFNA(FILTER($H:$H;$G:$G=M2);0);L2))

我把它展开成 3 行 (A1:A3):

=SUM(MMULT(IFNA(FILTER($H:$H;$G:$G=M2);0);L2))
=SUM(MMULT(IFNA(FILTER($H:$H;$G:$G=M3);0);L3))
=SUM(MMULT(IFNA(FILTER($H:$H;$G:$G=M4);0);L4))

而且我得到了正确的结果。 然后我想得到这些的总和。但我需要在一行中创建以上所有内容。 我的意思是 - 我不想单独计算上面的内容然后执行类似 SUM(A1:A3).

的操作

我尝试使用 ARRAYFORMULA() 但没有成功,是的,这有多难,对吧?

晚上好!

更新:

如果有人会寻找解决方案,最好的解决方案是 Mike 的解决方案。看看他添加的图片

我刚刚将其扩展为过滤 L 和 M 列,并且列的长度无关紧要。当然 L 和 M 列必须具有相同数量的元素 ;)

=SUM(MMULT(ARRAYFORMULA(--(G2:G=TRANSPOSE(FILTER(M2:M;ISTEXT(M2:M))))*(H2:H));FILTER(L2:L;ISNUMBER(L2:L))))

您应该能够将求值嵌套在 SUM 中,如下所示,可以说得到 SUM 的 SUM。

=SUM(SUM(MMULT(IFNA(FILTER($H:$H;$G:$G=M2);0);L2)),SUM(MMULT(IFNA(FILTER($H:$H;$G:$G=M3);0);L3)),SUM(MMULT(IFNA(FILTER($H:$H;$G:$G=M4);0);L4)))

可能有更有效的方法,但为什么要把它复杂化。 :)

试试这个

=sum(mmult(arrayformula(--(G2:G=transpose(M2:M4))*(H2:H)),L2:L4))

公式=arrayformula(--(G2:G=transpose(M2:M4))*(H2:H))会给你一个矩阵如下,然后应用mmult