但...
前段时间, 过用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}
巧用ROW函数统计前N名数据
对前多少名、或者倒数多少名数据进行统计,是最常用的EXCEL数据处理方式。 关键操作 前三名业绩和: =SUM(LARGE(B2:B37,{1,2,3})) 其中,LARGE函数的用法是: 语法:LARGE(array,k) 中文语法:LARGE(数组或数据区域,第K大值); 比如: LARGE(B
本题中,三个公式中,每个数据之间的计算符号不一样,要么“*”,要么“,”,符号不同,结果也不相同。
第一个公式:
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),求和范围)
excel身份证号码统计易出现的错误
今天朋友在根据身份证号码筛选员工信息的时候出现错误:同一个身份证号码,高级筛选出好几位员工,错误出现过程如下动: 这是什么原因? 问题解析原因分析 高级筛选的结果如下: 分析结果,我们可以看出:筛选出的三位员工,他们的身份证号码的前15位是一致的。 原因是Excel对同一串数字的有效辨识,仅限于15位