countif函数多条件计数(多条件不重复计数函数)
通常情况下,要实现多条件查找首先想到的会是LOOKUP函数、要实现多条件求和首先会想到SUMIIFS函数或者DSUM函数、要实现多条件计数首先会想到COUNTIFS函数或者DCOUNT函数、要实现不重复计数首先会想到删除重复项在计数。接下来为朋友们分享一个可以实现上述所有功能的函数(SUMPRODUCT函数)。
一.SUMPRODUCT函数的本质功能:返回相应数组或区域乘积的和,每个参数的数组或区域大小必须一致。
二.SUMPRODUCT函数实现多条件查找。
在下面这个实例中查找品牌为苹果,型号为iphone6的手机的销量。在销量下方的单元格输入公式=SUMPRODUCT((A2:A13=D2)*1,(B2:B13=E2)*1,C2:C13)。
说明:
1.公式中的(A2:A13=D2)返回一个由逻辑值组成的数组,当A2:A13的单元格内容等于D2单元格内容时返回逻辑值TRUE;否则,返回逻辑值FALSE。最终返回的是一个由{FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE}组成的数组。
2.逻辑值乘数字1会把逻辑值TRUE转化成数字1,把逻辑值FALSE转化为数字0。公式中的(A2:A13=D2)*1返回一个由数字0和1组成的数组,当A2:A13的单元格内容等于D2单元格内容时返回逻辑值1;否则,返回逻辑值0。最终返回的是一个由{0;0;0;0;1;0;1;1;0;0;0;1}组成的数组。
3.公式中的(B2:B13=E2)*1的部分和(B2:B13=E2)原理同上。
4.选择公式中的部分内容摁住键盘上的F9键可以查看计算结果,例如选中(A2:A13=D2)*1摁下F9会显示{0;0;0;0;1;0;1;1;0;0;0;1}。
三.SUMPRODUCT函数实现多条件计数。
在下面这个实例中统计三年二班语文成绩大于90的学生的人数。在人数下方的单元格输入公式=SUMPRODUCT((B2:B83=H2)*1,(C2:C83>90)*1)。
说明:
1.公式中(C2:C83>90)当C2:C83的单元格内容大于90时返回逻辑值TRUE;否则,返回逻辑值FALSE。最终返回的是一个由逻辑值组成的数组。
2.其他解释与多条件查找类似,这里不再赘述。
四.SUMPRODUCT函数实现多条件求和。
在下面这个实例中统计品牌为苹果、销量大于1800的销量总和。在总和下方的单元格输入公式=SUMPRODUCT((A2:A13=D2)*1,(C2:C13>1800)*1,C2:C13)。
说明:
1.公式解释与多条件查找和多条件计数类似,这里不在赘述。
2.配合上述所讲的多条件计数可以计算平均值(两个公式相除即可)。
五.SUMPRODUCT函数实现不重复计数。
在下面这个实例中统计所有排名的个数(不统计重复出现)。在不重复个数下方的单元格输入公式=SUMPRODUCT(1/COUNTIF($A$2:$A$13,$A$2:$A$13))。
说明:
1.公式中COUNTIF($A$2:$A$13,$A$2:$A$13)返回的是A2:A13单元格中内容出现次数的数组,最终返回的是一个由{4;4;5;4;3;5;5;3;4;5;5;3}组成的数组。
2.公式中1/COUNTIF($A$2:$A$13,$A$2:$A$13)返回的上一个数组的倒数组成的数组,最终是由{0.25;0.25;0.2;0.25;0.333333333333333;0.2;0.2;0.333333333333333;0.25;0.2;0.2;0.333333333333333}组成的数组。这个数组的构造完成之后可以确保每一个品牌所对应的数组的元素的和正好等于1,配合SUMPRODUCT函数就可以实现不重复计数。