COUNTIF与SUMPRODUCT函数过招!

关于使用分隔符号-会出错的问题,这个是去年无意间发现的,这点希望所有人记住 。详见文章:这是我此生见过COUNTIF函数,最奇葩的错误!
COUNTIF和COUNTIFS函数很好用,SUMPRODUCT函数也不错 。究竟谁更好用,一起来看看 。
1.下面请看第一场比赛:如何统计值班经理的值班次数?

COUNTIF与SUMPRODUCT函数过招!

文章插图
COUNTIF函数首先应战,在H2单元格输入公式,并向下填充 。
=COUNTIF(A:A,G2)
COUNTIF函数语法:
=COUNTIF(条件区域,条件)
SUMPRODUCT函数也不甘示弱,在I2单元格输入公式,并向下填充 。
=SUMPRODUCT(($A$2:$A$10=G2)*1)
SUMPRODUCT函数单条件计数语法:
=SUMPRODUCT((条件1)*1)
或者
=SUMPRODUCT(–(条件1))
2.第一场比赛可谓势均力敌,不分胜负 。下面请看第二场比赛:统计值班经理在中午时间段的值班次数 。
【COUNTIF与SUMPRODUCT函数过招!】
COUNTIF与SUMPRODUCT函数过招!

文章插图
两个条件?COUNTIF函数顿时傻眼了,多条件计数是COUNTIF函数心里永远的痛 。然而,SUMPRODUCT函数却气定神闲,在H2单元格输入公式,并向下填充 。
=SUMPRODUCT(($A$2:$A$10=G2)*($B$2:$B$10=$H$1))
SUMPRODUCT函数多条件计数语法:
=SUMPRODUCT((条件1)*(条件2)*(条件n))
“打虎亲兄弟,上阵父子兵”,看到兄弟COUNTIF函数有难,擅长多条件计数的COUNTIFS函数果断出手了,在I2单元格输入公式,并向下填充 。
=COUNTIFS(A:A,G2,B:B,$H$1)
COUNTIFS函数语法:
=COUNTIFS(条件区域1,条件1,条件区域2,条件2,条件区域n,条件n)
3.第二场比赛的结果大家有目共睹,胜利属于SUMPRODUCT函数 。下面请看第三场比赛:值班经理都用了一个字作为自己的简称,如何根据简称统计值班次数?
COUNTIF与SUMPRODUCT函数过招!

文章插图
SUMPRODUCT函数没有了之前的淡定从容,陷入了沉思中 。而COUNTIF函数却露出了久违的笑容,它拿出了自己的绝活,在H2单元格输入公式,并向下填充 。
=COUNTIF(A:A,”*”&G2&”*”)
在这里,“*”代表通配符,表示任意一个或者多个字符 。在Excel函数中,能与通配符配合使用的函数并不多,COUNTIF函数是其中的一个,当然也包括了COUNTIFS函数,SUMIF函数,SUMIFS函数,VLOOKUP函数,MATCH函数等等 。
SUMPRODUCT函数想破了脑袋,借助其他函数,终于也统计出来了 。
=SUMPRODUCT(–ISNUMBER(FIND(G2,$A$2:$A$10)))
这个公式比较复杂,下面我们按步骤来分析 。
Step 01 先看最里层的FIND函数,FIND函数的语法:
=FIND(查找的字符,查找的地方)
在I2,I3单元格分别输入公式:
=FIND(“风”,”风清扬”)
=FIND(“风”,”东方不败”)
COUNTIF与SUMPRODUCT函数过招!

文章插图
在第一个公式中,因为字符“风”在字符串“风清扬”的第一个位置,所以结果返回1 。而第二个公式中,因为字符“风”没有在字符串“东方不败”中,所以结果返回错误值 。
Step 02 熟悉了FIND函数的基本运用后,我们在I2单元格输入公式:
=FIND(G2,$A$2:$A$10)
COUNTIF与SUMPRODUCT函数过招!

文章插图
我们知道,在“A2:A10”区域中,存在了两个“风清扬”,按道理,字符“风”是能查找到的,应该返回数字才对啊,但是却返回错误值,这究竟是为什么呢?
FIND函数的第二个参数是一个区域,所以返回的结果是若干个数据,多个数据放在一个单元格中,当然会出错了 。这个时候,我们需要借助一个神器:独孤九剑,也就是F9键 。选择公式所在单元格,点击编辑栏,按F9键 。

推荐阅读