我们依然用上述图片的例题为例,继续计算商品的销售总额 。如果我们在C9输入公式:
=SUMPRODUCT(C3:C7,D3:D6)
结果会是怎么样的呢?
错误值:#VALUE!
为什么?
细心的您肯定已经注意到了,两个区域数组,C3:C7明显显比D3:D6多了一个元素,C3和D3结对子,C4和D4结对子……那么C7和谁结对子呢?女人们都嫁了,结果剩下一个光棍,这日子没法过了!一个萝卜一个坑,只有萝卜没有坑,这不是要萝卜死吗?
——于是SUMPRODUCT就不高兴了,它给你一个错误值#VALUE!,明确告诉你,和谐时代幸福岁月,日子不能这么过 。
这就是SUMPRODUCT函数的第三个特点:数组参数必须有相同的尺寸,否则返回错误值 。
下面是一道练习题,你看看,能用SUMPRODUCT函数做出来吗?

文章插图
案例拓展
假设下面这张图,是某个公司工资发放的部分记录表(数据纯属虚拟,如有雷同,那是穿越) 。A列是工资发放的时间,B列是员工所属的部门,C列是员工姓名,D列是相关员工领取的工资金额 。

文章插图
——那么,问题和广告都来了:
1
员工西门庆领取了几次工资?
这是一个单条件计数的问题,通常我们使用COUNTIF函数,但如果使用SUMPRODUCT函数,一般写成这样:
=SUMPRODUCT((C2:C13=”西门庆”)*1)
先判断C2:C13的值是否等于”西门庆”,相等则返回TRUE,不等则返回FALSE,由此建立一个有逻辑值构成的内存数组 。
【学Excel函数怎能不会SUMPRODUCT?】上文已经说过,SUMPRODUCT有一个特性,它会将非数值型的数组元素作为0处理,逻辑值自然是属于非数值型的数组元素,为了避免SUMPRODUCT函数把逻辑值视为0,造成统计错误,我们使用*1的方式,把逻辑值转化为数值,TRUE转化为1,FALSE转化为0,最后统计求和 。
2
员工西门庆领取了多少工资?
这是一个单条件求和的问题,通常我们使用SUMIF函数,如果使用SUMPRODUCT函数,我们可以写成这样:
=SUMPRODUCT((C2:C13=”西门庆”)*D2:D13)
依然首先判断C2:C13的值是否等于”西门庆”,得到逻辑值FALSE或TRUE,再和D2:D13的值对应相乘 。TRUE乘以数值,得到数值本身 。FALSE乘以数值返回0 。最后统计求和得出结果 。
看完了上面两个问题,有些朋友可能会在心里想,貌似SUMPRODUCT能干的事,SUMIF和COUNTIF也能做到,而且做的更好,那么还要SUMPRODUCT干啥嘞?
乡亲们呐,话不能这么说,SUMPRODUCT可是上得厅堂下得厨房,对工作环境不挑不拣,它对参数类型没有啥特别要求,COUNTIF和SUMIF就不同了,他俩要求个别参数,必须是区域(Range型),不支持数组,比如下面这两个问题,COUNTIF和SUMIF就要绕了 。
3
二月份外交部发放了几次工资?总额是多少?
第1个问题,二月份外交部发放了几次工资?
这是一个多条件计数的问题 。
第一个条件,发放工资的时间必须是二月份;第二个条件,发放工资的部门必须是外交部 。
如果使用多条件计数函数COUNTIFS,判断发放工资的时间是否属于六月份,会简单问题复杂化 。而使用SUMPRODUCT函数,咱们可以把公式写成这样:
=SUMPRODUCT((MONTH(A2:A13)=2)*(B2:B13=”外交部”))
第2个问题,统计二月份外交部发放了多少工资?
这是一个常见的多条件求和问题 。
如果使用SUMIFS函数,判断发放工资的时间是否属于六月份,也会简单问题复杂化 。
SUMPRODUCT跃然而至:
推荐阅读
- 五个Excel函数组合,效率提高一丢丢
- 学不完的办公技巧 ▏Excel篇
- 三分钟,学会几个常用函数公式
- 十个常用函数套路
- 史上最全Excel条件求和函数SUMIF经典教程
- 史上最全条件求和函数SUMIF教程
- 试验、工地最常用Excel函数公式大全,学会了工作得心应手
- 对联100副欣赏,小学生对联大全
- 试验检测、施工监理最常用的Excel函数公式大全,用它工作得心应手
- 学会这3个函数,走遍天下都不怕!