EXCEL 2007函数SUMIFS 和COUNTIFS的深入理解

03-13

今天突然对sumifs的应用有了点兴趣。个人觉得可以取代部分sumproduct的多条件求和功能。
1、客户A的销售额
=SUMIFS(C2:C22,A2:A22,"A")
可替换公式:
=SUMPRODUCT(C2:C22*(A2:A22="A"))
=SUMIF(A2:A22,"A",C2:C22)
2、客户A的1月份销售额
=SUMIFS(C2:C22,A2:A22,"A",B2:B22,1)
可替换公式:
=SUMPRODUCT(C2:C22*(A2:A22="A")*(B2:B22=1))
3、客户A的1月份和3月份销售额
=SUM(SUMIFS(C2:C22,A2:A22,"A",B2:B22,{1,3}))
可替换公式:
=SUMPRODUCT(C2:C22*(A2:A22="A")*(B2:B22={1,3}))
4、客户A和C的销售额
=SUM(SUMIFS(C2:C22,A2:A22,{"A","C"}))
可替换公式:
=SUMPRODUCT(C2:C22*(A2:A22={"A","C"}))
=SUM(SUMIF(A2:A22,{"A","C"},C2:C22))
5、客户A和C的1月份销售额合计
=SUM(SUMIFS(C2:C22,A2:A22,{"A","C"},B2:B22,1))
可替换公式:
=SUMPRODUCT(C2:C22*(A2:A22={"A","C"})*(B2:B22=1))
6、客户A的1月份和客户C的3月份销售额合计
=SUM(SUMIFS(C2:C22,A2:A22,{"A","C"},B2:B22,{1,3}))
可替换公式:
=SUMPRODUCT(C2:C22*(A2:A22={"A","C"})*(B2:B22={1,3}))
7、客户A和客户C的1月份和3月份销售额合计
=SUM(SUMIFS(C2:C22,A2:A22,{"A","C"},B2:B22,{1;3}))
*注意此公式7和公式6的差异仅为{1,3}和{1;3}中间的符号。
可替换公式:
=SUMPRODUCT(C2:C22*(A2:A22="A")*(B2:B22={1,3}))+SUMPRODUCT(C2:C22*(A2:A22="C")*(B2:B22={1,3}))
8、客户A和客户C的1月份/3月份/4月份销售额合计
=SUM(SUMIFS(C2:C22,A2:A22,{"A","C"},B2:B22,{1;3;4}))
可替换公式:
=SUMPRODUCT(C2:C22*(A2:A22="A")*(B2:B22={1,3,4}))+SUMPRODUCT(C2:C22*(A2:A22="C")*(B2:B22={1,3,4}))
9、客户A/B/C的1月份/3月份/4月份销售额合计
=SUM(SUMIFS(C2:C22,A2:A22,{"A","B","C"},B2:B22,{1;3;4}))
替代公式:
=SUMPRODUCT(C2:C22*(A2:A22="A")*(B2:B22={1,3,4}))+SUMPRODUCT(C2:C22*(A2:A22="B")*(B2:B22={1,3,4}))+SUMPRODUCT(C2:C22*(A2:A22="C")*(B2:B22={1,3,4}))
如果再次增多就可以看到SUMIFS的优势了。
大家可以看到,SUMIFS在7和8的情况下,字符明显减少。(当然上面的情况好些还能用MMULT完成,但感觉SUMIFS更加简洁易懂)
大家一起来探讨一下,这个新函数的还有什么新特性。。。。。
10、客户A的数量
=COUNTIFS(A2:A22,"A")
替代公式:
=SUMPRODUCT(--(A2:A22="A"))
=COUNTIF(A2:A22,"A")
11、客户A和B的数量
=SUM(COUNTIFS(A2:A22,{"A","B"}))
替代公式:
=SUMPRODUCT(--(A2:A22={"A","B"}))
=SUM(COUNTIF(A2:A22,{"A","B"}))
12、客户A和B的1月份数量
=SUM(COUNTIFS(A2:A22,{"A","B"},B2:B22,1))
替代公式:
=SUMPRODUCT((A2:A22={"A","B"})*(B2:B22=1))
13、客户A和B的1/3月份数量
=SUM(COUNTIFS(A2:A22,{"A","B"},B2:B22,{1;3}))
替代公式:
=SUMPRODUCT((A2:A22={"A","B"})*(B2:B22=1))+SUMPRODUCT((A2:A22={"A","B"})*(B2:B22=3))
*如果条件更多,COUNTIFS的优势就显现出来了。
14、客户A的1月份和客户B的3月份数量
=SUM(COUNTIFS(A2:A22,{"A","B"},B2:B22,{1,3}))
替代公式:
=SUMPRODUCT((A2:A22={"A","B"})*(B2:B22={1,3}))
15、客户和月份的不重复个数
=SUMPRODUCT(1/COUNTIFS(A2:A22,A2:A22,B2:B22,B2:B22))
替代公式:
=SUMPRODUCT(--(MATCH(A2:A22&B2:B22,A2:A22&B2:B22,)=ROW(A2:A22)-1))
=SUMPRODUCT(1/COUNTIF(D2:D22,D2:D22)) (D列为辅助列)
*感觉这个是今天最有收获的公式。这个公式可以适用3列、4列到更多列。。。。。