前两天有一个学员问请教张老师一个Excel多条件计数的问题。这个问题很有代表性
我决定这里正好把Excel2003 及 Excel2007/2010 的解决方法都写出来跟大家一起分享!
大概是这样子的
基础数据:
物料号 | 规格 | 领用数量 | 领用人 |
46020440000(A2) | 50ML(B2) | | |
58082800300 | 50ML | | |
65102203000 | 50ML | | |
58081200000 | 50ML | | |
64019505000 | 50ML | | |
目的做下面这张表:
物料号 | 规格 | 领用人 A | 领用人 B |
46020440000 | 50ML | C9单元格 |
|
58082800300 | 50ML |
|
|
65102203000 | 50ML |
|
|
58081200000 | 50ML |
|
|
64019505000 | 50ML |
|
|
请问我该用哪个函数?
在Excel2003 中如果要解决这个问题,我当时就想出了两个方案(如果您还有更好的方法请告诉我,我们一起分享)
第一:使用数据透视表,这个方法很快。但是,数据透视表有它自己的局限性。
第二:使用Sum函数,这个函数,每个使用Excel的朋友大家都知道。
sum函数原本是求和函数,很多朋友也知道 sumif函数是一个条件求和函数,countif函数做条件计数。但是这两个函数仅仅是单条件求和/计数函数,使用sum函数做多条件计数/求和的格式如下:
在上面的案例中 要计算出领用人 A 的不同产品的数量则在C9单元格中输入:
=sum(($D$2:$D$6="A")*($A$2:$A$6="46020440000")*($B$2:$B$6="50ML"))
注意:特别重要的是,在输入完这一组公式(也就是输入完最后一个括号后)
用一定要使用ctrl+shift+Enter来完成公式输入。这样就ok了。
当然,为了输入方便,"A" 以及"46020440000"、"50ML"等都可以使用单元格的引用来完成。
此外,这里还能用sumproduct 我就不说了
在Excel2007/2010中要实现这个结果,就很简单了,因为在2007和在2010中新增了
sumifs 和 countifs 这两个函数,看着两个函数名字大家就不难看出这两个函数就是sumif和countif这两个函数的复数形式,因此,他们的作用就是多条件求和/计数啦。简单吧!!
看看countifs的参数吧:
就跟那刚才上面那个问题用这个函数来解决的话,那就是
=countifs($D$2:$D$6,"A",$A$2:$A$6,"4602044000",$B$2:$B$6,"50ML")
如果是条件求和:
=sumifs(求和区域,条件区域1,条件1,条件区域2,条件2,....)
另外,在Excel2003中,单条件平均值要用
在2007及2010中,则新增了
那么,你还会发现有averageifs,明白了吧?
哈哈!
联系客服