1、Excel 多条件求和 & SUMPRODUCT 函数用法详解龙 逸凡日常工作中,我们经常要用到多条件求和,方法有多种,第一类:使用基本功能来实现。主要有:筛选、分类汇总、数据透视表、多条件求和向导;第二类:使用公式来实现方法。主要有:使用 SUM 函数编写的数组公式、联用SUMIF 和辅助列(将多条件变为单条件) 、使用 SUMPRODUCT 函数、使用SUMIFS 函数 (限于 Excel2007 及以上的版本),方法千差万别、效果各有千秋。本人更喜欢用 SUMPRODUCT 函数。由于 Excel 帮助对 SUMPRODUCT 函数的解释太简短了,与 SUMPRODUCT 函数的作用相比
2、实在不匹配,为了更好地掌握该函数,特将其整理如下。龙逸凡注:欢迎转贴,但请注明作者及出处。一、 基本用法在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。语法:SUMPRODUCT(array1,array2,array3, .)Array1, array2, array3, . 为 2 到 30 个数组,其相应元素需要进行相乘并求和。公式:=SUMPRODUCT(A2:B4, C2:D4)A B C D1 Array 1 Array 1 Array 2 Array 22 3 4 2 73 8 6 6 74 1 9 5 3公式解释:两个数组的所有元素对应相乘,然后把乘积相加,即 3*
3、2 + 4*7 + 8*6 + 6*7 + 1*5 + 9*3。计算结果为 156二、 扩展用法1、 使用 SUMPRODUCT 进行多条件计数语法:SUMPRODUCT(条件 1)*(条件 2)*(条件 3)* (条件 n)作用:统计同时满足条件 1、条件 2 到条件 n 的记录的个数。实例:=SUMPRODUCT(A2:A10=“男“)*(B2:B10=“中级职称“)公式解释:统计性别为男性且职称为中级职称的职工的人数2、 使用 SUMPRODUCT 进行多条件求和语法:SUMPRODUCT(条件 1)*(条件 2)* (条件 3) *(条件 n)*某区域)作用:汇总同时满足条件 1、条件
4、 2 到条件 n 的记录指定区域的汇总金额。实例:=SUMPRODUCT(A2:A10=“男“)*(B2:B10=“中级职称“)*C2:C10)公式解释:统计性别为男性且职称为中级职称的职工的工资总和(假设 C 列为工资)三、 注意事项1、数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。 2、SUMPRODUCT 函数将非数值型的数组元素作为 0 处理。3、在 SUMPRODUCT 中, 2003 及以下版本不支持整列(行)引用,必须指明范围,不可在 SUMPRODUCT 函数使用 A:A、B:B,Excel2007 及以上版本可以整列(列)引用,但
5、并不建议如此使用,公式计算速度慢。4、SUMPRODUCT 函数不支持 “*”和“?”通配符SUMPRODUCT 函数不能象 SUMIF、COUNTIF 等函数一样使用“*”和“?”等通配符,要实现此功能可以用变通的方法,如使用LEFT、 RIGHT、ISNUMBER(FIND() 或 ISNUMBER(SEARCH()等函数来实现通配符的功能。如:=SUMPRODUCT(A2:A10=“男“)*(B2:B10=“中级职称“)*(LEFT(D2:D10,1)=“龙“)*C2:C10)=SUMPRODUCT(A2:A10=“男“)*(B2:B10=“中级职称“)*(ISNUMBER(FIND(“
6、龙逸凡 “,D2:D10)*C2:C10)注:以上公式假设 D 列为职工姓名。 ISNUMBER(FIND()、ISNUMBER(SEARCH() 作用是实现“*”的通配功能,只是前者区分大小写,后者不区分大小写。5、SUMPRODUCT 函数多条件求和时使用 “, ”和 “*”的区别:当拟求和的区域中无文本时两者无区别,当有文本时,使用“*”时会出错,返回错误值 #VALUE!,而使用“, ”时 SUMPRODUCT 函数会将非数值型的数组元素作为 0 处理,故不会报错。 也就是说:公式 1:=SUMPRODUCT(A2:A10=“男“)*(B2:B10=“中级职称“)*C2:C10)公式
7、2:=SUMPRODUCT(A2:A10=“男“)*(B2:B10=“中级职称“),C2:C10)当 C2:C10 中全为数值时,两者计算结果一样,当 C2:C10 中有文本时公式1 会返回错误值 #VALUE!,而公式 2 会返回忽略文本以后的结果。四、 网友们的精彩实例1、求指定区域的奇数列的数值之和=SUMPRODUCT(MOD(COLUMN(A1:F1),2)*A1:F1)2、求指定区域的偶数行的数值之和 =SUMPRODUCT(MOD(ROW(A1:A22),2)-1)*A1:A22)*(-1)3、求指定行中列号能被 4 整除的列的数值之和 =SUMPRODUCT(MOD(COLUMN(A1:P1),4)=0)*A1:P1)4、.求某数值列前三名分数之和SUMPRODUCT(LARGE(B1:B16,ROW(1:3)5、统计指定区域不重复记录的个数SUMPRODUCT(1/COUNTIF(V11:V15,V11:V15)相关链接:1、 逸凡工作簿合并助手,excel 表格合并不用愁,免费2、 逸凡对账能手 V1.0 正式版,免费且 代码公开3、 龙逸凡 Excel 培训手册之潜龙在渊 ,免费 4、 龙逸凡 Excel 培训手册之飞龙 在天,免费5、 逸凡账务系统 V3.0 正式版,永 久免费使用6、 逸凡账务系统 V4.0,小企业、兼职 代账 专用,收费