求和,老生常谈的话题,看着俗套,但实质经久不衰。除了用Sum、Sumif、Sumifs等函数求和外,还必须掌握Sumproduct函数。
一、Sumproduct函数功能及语法结构
(一)功能:在给定的几组数组中,将给定的数组间的元素相乘,并返回乘机之和。
(二)语法结构:=Sumproduct(数组1,[数组2],[数组3]……)。
注意事项:
1.当有多个数组时,每个数组的维数必须一样,否则返回:#VALUE!。
2.将非数值型的元素视为0处理。
3.如果为一维数组,且数组元素均为数值,则直接对数组元素进行求和处理。
二、应用技巧案例解读
1.多列数据乘机求和(基础功能)
目的:计算7月份的总销售额。
操作方法:
在目标单元格中输入公式:=SUMPRODUCT(F3:F24,G3:G24)。
原理解读:
从功能中知道,是返回给定数组对应元素间乘积的和;上述公式中,参数为F3:F24、G3:G24,所以计算过程为:=F3*G3+G4*G4+……+F23*G23+F24*G24,也就是对给定的数组对应元素先乘机后求和,最终返回7月份总的销量。
2.单条件求和(替代Sumif)。
目的:统计学历为“研究生”的7月份的销售额。
操作方法:
在目标单元格中输入公式:=SUMPRODUCT((C3:C24="研究生")*(F3:F24)*G3:G24)。
原理解读:
如果C3:C24区域中的值等于“研究生”,则返回1,否则返回0,所以计算过程为:=C3*F3*G3+C4*F4*G4+……+C23*F23*G23+C24*F24*G24。
3.单条件计数(替代Countif)。
目的:统计学历为“研究生”的人数。
操作方法:
在目标单元格中输入公式:=SUMPRODUCT((C3:C24="研究生")*1)。
原理解读:
如果C3:C24单元格区域的值等于“研究生”,则返回1,否则返回0,1*1=1,0*1=0,最后求和,得到研究生的数量。
4.多条件求和(替代Sumifs)。
目的:计算“男”“研究员”7月份的总销售额。
操作方法:
在目标单元格中输入公式:=SUMPRODUCT((C3:C24="研究生")*(D3:D24="男")*F3:F24*G3:G24)。
5.多条件计数(替代Countifs)。
目的:统计性别为“男”,学历为“研究生”的人数。
操作方法:
在目标单元格中输入公式:=SUMPRODUCT((C3:C24="研究生")*(D3:D24="男"))。
6.不重复值计数。
目的:统计商品的种类。
操作方法:
在目标单元格中输入公式;=SUMPRODUCT(1/COUNTIF($E$3:$E$24,$E$3:$E$24))。
原理解读:
公式=COUNTIF($E$3:$E$24,$E$3:$E$24)统计的是E3:E24返回内从E3开始到E24单元格区域中每个单元格出现的次数,返回由1和0组成的数组;1/1=1,1/0返回错误值;最后由Sumproduct函数对1维数组求和即可得到不重复值的个数。
7.中国式排名
目的:对8月份的销量不重复进行排名。
操作方法:
在目标单元格中输入公式:=SUMPRODUCT(($H$3:$H$24>H3)/COUNTIF($H$3:$H$24,$H$3:$H$24))+1。
原理解读:
1.如果H3:H24>H3,则返回1,否则返回0。
2.=COUNTIF($H$3:$H$24,$H$3:$H$24)则返回由1为元素的数组。
3.1/1=1,1/0=错误,所以SUMPRODUCT最后对由1和0组成的1为数组进行求和。
4.+1为修正值,简单理解,必做最大值,排名为1,但H3:H24>H3还是不成立,公式=SUMPRODUCT(($H$3:$H$24>H3)/COUNTIF($H$3:$H$24,$H$3:$H$24))的返回结果仍为0,+1修正即可。
本章小结:
文中从实际出发,详细解读了Sumproduct函数的功能、语法结构以及应用技巧。对于应用技巧,需要各位同学勤加练习,如有疑问,可以在留言区留言讨论哦!
热门跟贴