用条件水平地总结
我有一个数据表示如下:
ENO ABCD 1001 0 0 1.2 0 1001 1.9 0 0 2.2 1002 0 0 0 0 1002 0 0 6.6 0 1002 0 0 3 0 1003 0 0 0 0 1003 0 0 0 1 1004 0 2 0 0 1004 0 3 0 0 1004 0 0 0 0 1004 0 0 2 0
我试图总结列A,B,C和D水平如下:
ENO ABCD ENO SUM_T 1001 0 0 1.2 0 1001 5.3 1001 1.9 0 0 2.2 1002 0 0 0 0 1002 9.6 1002 0 0 6.6 0 1002 0 0 3 0 1003 0 0 0 0 1003 1 1003 0 0 0 1 1004 0 2 0 0 1004 7 1004 0 3 0 0 1004 0 0 0 0 1004 0 0 2 0
我如何指定公式?
鉴于:
在F1中input:
=SUM(B1:E1)
并抄下来。 在G1中input:
=A1
在G2中input:
=IF(A2=A1,"",A2)
并抄下来。 在H1中input:
=SUMIF(A:A,G1,F:F)
在H2中input:
=IF(G2="","",SUMIF(A:A,G2,F:F))
并抄下来:
您可以使用SUMPRODUCT函数为多个列提供SUMIF 。
F2:G2中的公式是:
=IF(A2<>A1, A2, "") =IF(F2="", "", SUMPRODUCT(B$2:INDEX(E:E, MATCH(1E+99,A:A ))*(A$2:INDEX(A:A, MATCH(1E+99,A:A ))=F2)))
根据需要填写。
SUMPRODUCT函数不喜欢完整的列列引用,宁愿计算每行是否有任何填充单元格。 这种自适应将范围的范围限制到仅仅需要的范围。
可能有一个更有说服力的方法来实现这一点,但这里的照片是我将如何做到这一点。 这使用了四个SUMIF函数,每列一个,加起来计算总和。 对于第一个“ENO”值1001,该函数在第一列中查找(标记为“A”),并将任何匹配与值1001相加。然后,我们对第二列(标记为“B”)执行此操作,等等。 对于您想要总和的每个值,都会重复此操作。
用于第一个“ENO”值的公式1001:
=SUMIF(A:A,F2,B:B)+SUMIF(A:A,F2,C:C)+SUMIF(A:A,F2,D:D)+SUMIF(A:A,F2,E:E)
对于每个“ENO”值,这个公式将被重复,其中单元格“F2”包含search值。
请让我知道,如果我需要详细说明答案或如何创build公式。 🙂
链接到图像
注意 :谢谢Jeeped插入图像