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
在某些列中有如下公式:
=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