前段时间, 过用SUMPRODUCT函数分部门统计数据、处理分类排名、统计月份缺勤人数等用法,可以看到这个函数在处理“分类统计”问题上几乎所向披靡,无所不能。
前段时间, 过用SUMPRODUCT函数分部门统计数据、处理分类排名、统计月份缺勤人数等用法,可以看到这个函数在处理“分类统计”问题上几乎所向披靡,无所不能。
但,昨天,朋友在用SUMPRODUCT函数分部门、分产品统计销量的时候,却出现的问题。
总结如下:
问题分析
函数解释:
SUMPRODUCT函数是Excel中的数学函数,用于在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。
其基本语法为:
SUMPRODUCT(array1,[array2], [array3], …)
SUMPRODUCT 函数语法具有下列参数:
Array1:必需。其相应元素需要进行相乘并求和的第一个数组参数。
Array2, array3,…:可选。 2 到 255 个数组参数,其相应元素需要进行相乘并求和。
特别注意:
数组参数必须具有相同的维数。 否则,函数 SUMPRODUCT 将返回 #VALUE! 错误值#REF!。
本题中的解释
本题中有三个数组,返回值分别是:
($A$2:$A$15=F2);
{TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}
($B$2:$B$15=G2);
{TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE}
$C$2:$C$15:
{5;4;2;3;1;无;3;5;2;2;5;5;2;5}
本题中,三个公式中,每个数据之间的计算符号不一样,要么“*”,要么“,”,符号不同,结果也不相同。
第一个公式:
H2单元格内的公式:
=SUMPRODUCT(($A$2:$A$15=F2),($B$2:$B$15=G2),$C$2:$C$15)
结果返回值是0,原因分析:
三个数组之间都是逗号”,”,返回零值的主要原因在于前两个数组,这两个数组返回的都是逻辑值,中间如果用”,”,互相独立的两个逻辑数据之间不能进行对应位置处逻辑值相乘。
而如果改成=SUMPRODUCT(($A$2:$A$15=F2)*1,($B$2:$B$15=G2)*1,$C$2:$C$15),通过*1,先把逻辑值变成数值,中间再用”,”,对应位置处数据就可以相乘了。
第二个公式:
I2单元格内的公式:
=SUMPRODUCT(($A$2:$A$15=F2)*($B$2:$B$15=G2)*$C$2:$C$15)
结果返回值是#VALUE,原因分析:
错误的原因是第三个数组内有文本,文本不能直接参与求和。
第三个公式:
J2单元格内的公式:
=SUMPRODUCT(($A$2:$A$15=F2)*($B$2:$B$15=G2),$C$2:$C$15)
结果返回值是正确结果,原因分析:
前两上数组之间对应位置的逻辑值相乘,转变成数组
{1;0;0;0;0;0;0;0;0;0;0;1;0;0}。
第三个数组$C$2:$C$15前加“,”,公式用逗号分隔,相乘区域中有文本,则当0处理。
总之
SUMPRODUCT多条件求和,写成如下格式:
=SUMPRODUCT((条件一)*(条件二)*……*(条件N),求和范围)