sumproduct函数的使用方法及实例?sumproduct函数多条件求和
时间:2022-05-16 20:32:12
Sumproduct可以分为Sum和product,这分开的两个函数都是独立的函数,sum是求和,product是乘积,和起来我一般叫它乘积求和函数。SUMPRODUCT函数向来被称之为万能函数,可以进行各种条件计数和条件求和。 先说下它的语法:SUMPRODUCT(array1, [array2], [array3], ...),array是数组的意思,我们可以有255组,当然我们很少会用到这么多,一般用到4-5个就不错了,我最多也就用过8个,当时为了多条件查询数据,未获得保险产品费率,需要产品名称、缴费方式、缴费年期、部门/分公司、首期/续期等信息。 先透露下,这个函数不但可以做自己的事,也能做sumifs的事,甚至连countifs的事也一起做了。
SUMPRODUCT函数多条件求和的基础知识
SUMPRODUCT函数是在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。其语法如下:
=SUMPRODUCT(array1,[array2],[array3],...
array1:必需。其相应元素需要进行相乘并求和的第一个数组参数。
array2,array3,...:可选。2到255个数组参数,其相应元素需要进行相乘并求和。
SUMPRODUCT函数注意事项:
1.在使用SUMPRODUCT函数时,数组参数必须具有相同的维数。
2.区域或数组中非数值元素将会当0处理
sumproduct函数的使用方法及实例1-模糊条件求和
SUMPRODUCT函数经常用来根据指定条件进行精确查找,其实也可以进行模糊查找。如下图表格所示,如何统计城区小学所有男学生的成绩之和?
解决:这里城区小学包括城区一小、城区二小和城区三小,可以进行模糊条件查找。因为SUMPRODUCT函数函数是不支持通配符*或者?的,所以我们在进行模糊条件查找时,需要结合其它函数来实现。输入公式
=SUMPRODUCT(ISNUMBER(FIND("城区",C2:C13))*(B2:B13="男"),D2:D13)
说明:先用FIND函数在C2:C13这个区域中查找“城区”这个字符串,若存在返回相应位置,不存在则返回#VALUE!错误值;ISNUMBER函数是用来检测是否为数值,是的话返回TRUE,否则返回FALSE;最后用SUMPRODUCT函数进行多条件求和。
sumproduct函数的使用方法及实例2-按季度求和
如下图表格所示,我们如何求出各个季度的成交总数?
解决:选中统计表中的空白单元格区域,在E2单元格中输入公式
=SUMPRODUCT(N(CEILING(MONTH($A$2:$A$15)/3,1)=D2),$B$2:$B$15),
按Ctrl+Enter组合键完成所有公式填充。
sumproduct函数的使用方法及实例3-二维区域条件求和
在工作中,我们经常需要根据一维表数据源,在二维表里进行分类统计。如下图表格所示,如何统计各门店各类商品的销量?
解决:选中二维表中的空白单元格区域,在F2单元格中输入公式
=SUMPRODUCT(($A$2:$A$25=F$1)*($B$2:$B$25=$E2),$C$2:$C$25),
按Ctrl+Enter组合键完成所有公式填充。
说明:这里用到的实际上是SUMPRODUCT函数的多条件求和,公式中第一个条件是指定的门店,注意F1单元格的引用是锁定行,第二个条件指定的商品,注意E2单元格的引用是锁定列。
sumproduct函数的使用方法及实例4-分组排名
表格内数据按项目组归类排布,如果进行分组排名,可输入公式:
=SUMPRODUCT(($B$2:$B$14=B2)*($C$2:$C$14>C2))+1
说明:这里利用SUMPRODUCT函数进行多条件计数,$B$2:$B$14=B2求出当前单元格所在小组的个数,$C$2:$C$14>C2求出单元格区域中大于当前单元格的个数。统计完成后在得出的数字基础上加上1,就得到了当前单元格在所属组别中的名次。
如果项目组之间数据打乱,也可以添加分组名称进行详细标注,这时我们输入公式:
=B2&"第"&SUMPRODUCT(($B$2:$B$14=B2)*($C$2:$C$14>C2))+1&"名"
sumproduct函数的使用方法及实例5-中国式分组排名
上面例子中,我们对分组进行排名,出现并列名次时是按照西式的排名方式。如果要根据中国式的分组排名,我们可以输入数组公式:(Ctrl+Shift+Enter 三键输入)
=SUMPRODUCT(($B$2:$B$14=B2)*($C$2:$C$14>=C2)/
COUNTIFS($B$2:$B$14,$B$2:$B$14,$C$2:$C$14,$C$2:$C$14))
说明:这里用到了SUMPRODUCT函数的多条件求和,=SUMPRODUCT((条件1)*(条件2)*…*求和区域)。这里我们可以把公式看成:=SUMPRODUCT(($B$2:$B$14=B2)*($C$2:$C$14>=C2)*1/COUNTIFS($B$2:$B$14,$B$2:$B$14,$C$2:$C$14,$C$2:$C$14))
($B$2:$B$14=B2)*($C$2:$C$14>=C2)这部分为条件1和条件2,在B列和C列中,对等于B2且C列对应单元格大于C2进行条件判断,满足的话为TRUE,否则为FALSE,两者相乘为1或0,得到是数组结果;
COUNTIFS($B$2:$B$14,$B$2:$B$14,$C$2:$C$14,$C$2:$C$14),这里是查找B列到C列中,每一行出现的次数,得到数组结果是{1;1;1;1;1;1;2;1;2;1;1;1;1};
1/COUNTIFS($B$2:$B$14,$B$2:$B$14,$C$2:$C$14,$C$2:$C$14)得到的结果是
{1;1;1;1;1;1;0.5;1;0.5;1;1;1;1},0.5+0.5=1,得出的结果可以视为区域中不重复项的个数。
符合($B$2:$B$14=B2)*($C$2:$C$14>=C2)这两个条件并统计区域中不重复项的个数,即可得到排名结果。