SUMPRODUCT函数用法详解.doc_第1页
SUMPRODUCT函数用法详解.doc_第2页
SUMPRODUCT函数用法详解.doc_第3页
SUMPRODUCT函数用法详解.doc_第4页
SUMPRODUCT函数用法详解.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Excel多条件求和 & SUMPRODUCT函数用法详解转Excel多条件求和 & SUMPRODUCT函数用法详解龙逸凡日常工作中,我们经常要用到多条件求和,方法有多种,第一类:使用基本功能来实现。主要有:筛选、分类汇总、数据透视表、多条件求和向导;第二类:使用公式来实现方法。主要有:使用SUM函数编写的数组公式、联用SUMIF和辅助列(将多条件变为单条件)、使用SUMPRODUCT函数、使用SUMIFS函数(限于Excel2007及以上的版本),方法千差万别、效果各有千秋。本人更喜欢用SUMPRODUCT函数。由于Excel帮助对SUMPRODUCT函数的解释太简短了,与SUMPRODUCT函数的作用相比实在不匹配,为了更好地掌握该函数,特将其整理如下。龙逸凡注:欢迎转贴,但请注明作者及出处。一、 基本用法在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。语法: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*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、条件2到条件n的记录指定区域的汇总金额。实例:=SUMPRODUCT(A2:A10=男)*(B2:B10=中级职称)*C2:C10)公式解释:统计性别为男性且职称为中级职称的职工的工资总和(假设C列为工资) 赞 4 2010-12-20 00:01回复 catyoung18 4位粉丝 2楼三、 注意事项1、数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。 2、SUMPRODUCT函数将非数值型的数组元素作为 0 处理。3、在SUMPRODUCT中,2003及以下版本不支持整列(行)引用,必须指明范围,不可在SUMPRODUCT函数使用A:A、B:B,Excel2007及以上版本可以整列(列)引用,但并不建议如此使用,公式计算速度慢。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(龙逸凡,D2:D10)*C2:C10)注:以上公式假设D列为职工姓名。ISNUMBER(FIND()、ISNUMBER(SEARCH()作用是实现“*”的通配功能,只是前者区分大小写,后者不区分大小写。5、SUMPRODUCT函数多条件求和时使用“,”和“*”的区别:当拟求和的区域中无文本时两者无区别,当有文本时,使用“*”时会出错,返回错误值 #VALUE!,而使用“,”时SUMPRODUCT函数会将非数值型的数组元素作为 0 处理,故不会报错。 也就是说:公式1:=SUMPRODUCT(A2:A10=男)*(B2:B10=中级职称)*C2:C10)公式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)QUOTE:以下是引用tonycq在2008-1-3 17:32:46的发言:这里我仅谈该函数的两个关键问题未涉及其它查找函数,感谢gdliyy版主对文中不妥之处的指正。针对您前面对SUMPRODUCT的描述,我再补充以下几点,欢迎大家共同讨论!3、对于SUMPRODUCT函数,原来曾经有些讨论,这里再补充一下:a)如果所有参数使用逗号分隔,那么限制就比较多,要求如下:(以下简单以引用为例)一维引用的维度必须相同,即:sumproduct(a1:a5,b1:f1),结果错误,因为一维引用的方向不同;相同维度引用的尺寸大小必须相同,即:sumproduct(a1:a5,b1:b6),结果错误,因为前一引用为5个元素,后一引用为6个元素;二维引用由于涉及一个平面,因此遵循第2个原则尺寸相同:即:sumproduct(a1:b5,c2:d6),必须都是5行2列,而不是原LZ说的,只要面积相同就可行,如下面的公式结果错误:sumproduct(a1:b5,c1:g2),因为前引用为5行2列,而后引用为2行5列,虽然单元格总个数相同,但实际的引用尺寸是完全不同的。b)如果函数中不用逗号分隔,而使用连乘方式来进行条件求和,那就遵循另外的规则:(仍以引用为例)两个不同维度的一维引用可以运算,即:sumproduct(a1:a5*b1:f1),结果是对生成的5行5列的新数组进行求和;相同维度引用的尺寸大小必须相同,同数组相乘运算法则,即:sumproduct(a1:a5*b1:b6),因为引用大小不同,导致最后一行单元格相乘得出#N/A错误。同样的,如果两个二维引用相乘,也是遵循数组运算的法则,两个引用的尺寸大小必须相同,即:sumproduct(a1:b5*c2:d6),结果为分别对应相乘后的5行2列的新数组进行求和,而sumproduct(a1:b5*c1:g2)的结果为错误,因此两引用尺寸不同。最后,这类数组(引用)的运算还可以综合应用,也是正确的,如:=SUMPRODUCT(a2:a6*b1:c1*d2:e6)参数内部运算结果最终将得到一个新的数组,即:5行2列,最终由SUMPRODUCT求和得出结果。最后补充一点:对于SUMPRODUCT函数的用法有很多技巧,利用数组(引用)相乘运算,可以避免维度不同的错误;但利用逗号分隔的用法,可以避免文本参与乘法运算出现错误,大家应该综合考虑来进行运用。如:统计各部门男性员工的工资总额范例:=Sumproduct(部门=指定部门)*(性别=男),工资)这样就可以避免很多问题,容错性也好得多。SUMPRODUCT函数目录含义 语法 说明 示例编辑本段含义汉语的意思是 SUM:【数】求和 PRODUCT:【数】(乘)积 20 is the product of 5 and 4.二十是五与四的乘积。 SUMPRODUCT:组合的汉语意思是:乘积之和 在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。 编辑本段语法SUMPRODUCT(array1,array2,array3, .) Array1,array2,array3, . 为 2 到 30 个数组,其相应元素需要进行相乘并求和。 编辑本段说明 数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。 函数 SUMPRODUCT 将非数值型的数组元素作为 0 处理。 编辑本段示例如果将示例复制到空白工作表中,可能会更易于理解该示例。 BCDE1Array1Array1Array2Array2234273866741953公式说明(结果)=SUMPRODUCT(B2:C4*D2:E4)两个数组的所有元素对应相乘,然后把乘积相加,即3*2+4*7+8*6+6*7+1*5+9*3。(156)数学函数SUMPRODUCT应用实例 一、基本功能 1函数SUMPRODUCT的功能返回相应的区域或数组乘积的和。 2基本格式SUMPRODUCT(数据1,数据2,数据30)3示例数据表A列 B列 C列 D列 E列数据1数据2数据3数据4数据52 3 4 12 105 5 6 5 209 7 8 #N/A 307 2 7 9 KL1 6 2 8 2 基本计算 区域计算要求:计算A、B、C三列对应数据乘积的和。公式:=SUMPRODUCT(A2:A6,B2:B6,C2:C6)计算方式:=A2*B2*C2+A3*B3*C3+A4*B4*C4+A5*B5*C5+A6*B6*C6即三个区域A2:A6,B2:B6,C2:C6同行数据积的和。返回值788。 数组计算要求:把上面数据表中的三个区域A2:A6,B2:B6,C2:C6数据按一个区域一个数组,计算对应数组积的和。把A2:A6,B2:B6,C2:C6分别作为一个数组,即A2:A6表示为数组-2;5;9;7;1B2:B6表示为数组-3;5;7;2;6C2:C6表示为数组-4;6;8;7;2公式: =SUMPRODUCT(2;5;9;7;1,3;5;7;2;6,4;6;8;7;2) =788 注意:数组数据用大括号括起来。行数据之间用分号;分隔,如果是同一行的数据,用逗号,分隔。 可能出现的错误 编辑公式时,引用的数据区域大小不一致导致计算错误,返回值为#VALUE!。示例:在上面的数据表中,计算A列与B列数据区域积的和。公式: =SUMPRODUCT(A2:A6,B2:B5) 或 =SUMPRODUCT(A2:A6,B2:B8) 都会返回错误值#VALUE!。所以在用SUMPRODUCT函数时,引用的数据区域大小要一致。 数据区域中有错误值时,计算出现错误值。示例:在上面的数据表中,计算数据区域A2:A6与D2:D6对应积的和。公式: =SUMPRODUCT(A2:A6,D2:D6) 因为D2:D6中有错误值#N/A,所以公式返回值为错误值#N/A。 数据区域引用不能整列引用。示例:计算上面数据表中A2:A6和B2:B6区域对应数据积的和,正确公式为=SUMPRODUCT(A2:A6,B2:B6)则返回正确的计算值94。如果用公式 =SUMPRODUCT(A:A,B:B) 则返回错误值#NUM!。 数据区域有文本,计算中系统默认文本值为0。示例:在上面数据表中,计算A2:A6和E2:E6区域中对应数据积的和。公式 =SUMPRODUCT(A2:A6,E2:E6) 返回值是392,其中E5是文本KL,则A5*E5=0。 二、用于多条件计数用数学函数SUMOPRODUCT计算符合2个及以上条件的数据个数 数据表如下数据表所示: ABC1姓名性别职称2A男中一3B女中二4C女中一5D男中一6E女中一7F男中二8G女中二9H男中一10I男中一11J女中一统计表E列 F列 G列中一 中二男女要求:统计上面数据表中男、女性中分别是中一、中二的人数。如下图片,A1:C11数据区域,在E1:G3区域统计男、女中中一和中二的人数是多少。 计算结果公式在数据统计区域中的F2单元格编辑如下公式: =SUMPRODUCT($B$2:$B$11=$E2)*($C$2:$C$11=F$1) 向下复制到F3,向右复制到G3。 公式分解及分析 条件1$B$2:$B$11=$E2在计算过程中,条件1是一个数组,返回多值,写成公式如下:=$B$2:$B$11=$E2具体操作:选中10个连续的单元格,输入上述公式后,按Ctrl+Shift+回车键确认,返回10个逻辑判断值TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE。这10个逻辑判断值构成一个新的由TRUE主FALSE组成的数组1。 条件2$C$2:$C$11=F$1与条件1相同,是一个数组,返回多值,写成公式如下:=$C$2:$C$11=F$1具体操作:同样的方法,选中对应的10连续单元格,输入上述公式,按Ctrl+Shift+回车键确认,返回10个逻辑判断值TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE。这10个逻辑判断值构成另一个新的由TRUE主FALSE组成的数组2。 ($B$2:$B$11=$E2)*($C$2:$C$11=F$1)由新构成的数组1乘以数组2,即: =($B$2:$B$11=$E2)*($C$2:$C$11=F$1) =数组1*数组2 = TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE * TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE =TRUE*TRUE;FALSE*FALSE;FALSE*TRUE;TRUE*TRUE;FALSE*TRUE;TRUE*FALSE; FALSE*FALSE;TRUE*TRUE;TRUE*TRUE; FALSE*TRUE =1;0;0;1;0;0;0;1;1;0 其中,逻辑值TRU*与*LSE参与计算时: TRUE=1,FALSE=0,TRUE*TRUE=1,TRUE*FALSE=FALSE*TRUE=0,FALSE*FALSE=0 因此数组1*数组2=1;0;0;1;0;0;0;1;1;0由1和0构成了一个新的数组3。 =SUMPRODUCT($B$2:$B$11=$E2)*($C$2:$C$11=F$1) 函数SUMPRODUCT对新的数组3中的所有数据求和。即: =SUMPRODUCT($B$2:$B$11=$E2)*($C$2:$C$11=F$1)=SUMPRODUCT(数组1*数组2) =SUMPRODUCT(数组3) =SUMPRODUCT(1;0;0;1;0;0;0;1;1;0) =4 这里需要说明的是,公式编辑按照函数SUMPRODUCT的一般格式,可以编辑如下等效的公式: =SUMPRODUCT($B$2:$B$11=$E2)*1,($C$2:$C$11=F$1)*1) 函数SUMPRODUCT的作用是对数组($B$2:$B$11=$E2)与数组($C$2:$C$11=F$1)计算其乘积的和,即: =SUMPRODUCT($B$2:$B$11=$E2)*1,($C$2:$C$11=F$1)*1) =SUMPRODUCT( TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE *1, TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE *1) =SUMPRODUCT(1;0;0;1;0;1;0;1;1;0,1;0;1;1;1;0;0;1;1;1) =SUMPRODUCT(1*1;0*0;0*1;1*1;0*1;1*0;0*0;1*1;1*1,0*1) =SUMPRODUCT(1;0;0;1;0;0;0;1;1,0) =4 注意:TRUE*1=1,FALSE*1=1*FALSE=0,TRUE*0=0*TRUE=0 。数组中用分号分隔,表示数组是一列数组,分号相当于换行。两个数组相乘是同一行的对应两个数相乘。 三、用于多条件求和对于计算符合某一个条件的数据求和,可以用SUMIF函数来解决。如果要计算符合2个以上条件的数据求和,用SUMIF函数就不能够完成了。这就可以用函数SUMPRODUCT。 用函数SUMPRODUCT计算符合多条件的数据和,其基本格式是:SUMPRODUCT(条件1*条件2*,求和数据区域) 数据表 ABCD1姓名性别职称课时2A男中一153B女中二164C女中一145D男中一136E女中一187F男中二158G女中二169H男中一1410I男中一1711J女中一18要求:计算男、女分别是中一或中二的总课时数。 统计表F列 G列 H列 中一 中二男女在G2中编辑公式 =SUMPRODUCT($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11) 回车确认后向下向右复制公式到H3单元格。 公式释义:性别区域$B$2:$B$11中满足条件男和职称区域$C$2:$C$11中满足条件中一的数据,通过判断计算后由1和0组成一个新的数据区域,这个新的数据区域再和课时区域$D$2:$D$11中的对应数据相乘后求和。 公式对比:到此,对函数SUMPRODUCT用来计数和求和,试作一对比 计数公式 =SUMPRODUCT($B$2:$B$11=$E2)*($C$2:$C$11=F$1) 求和公式 =SUMPRODUCT($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11) 不难看出,求和公式在原来的计数公式中,在相同判断条件下,增加了一个求和的数据区域。也就是说,用函数SUMPRODUCT求和,函数需要的参数一个是进行判断的条件,另一个是用来求和的数据区域。 四、用于排名次如下A列数据:A列 B列数据 名次56658965567890526090需要排出区域A2:A11中10个数据的名次。在B2中编辑公式: =SUMPRODUCT(A2$A$2:$A$11)*1)+1 向下复制到单元格B11。 公式释义:用A2到$A$2:$A$11(用绝对引用$保证公式在向下复制时整个数据区域不发生变化)中进行比较,当A2$A$2:$A$11成立时,则返回TRUE;如果A2$A$2:$A$11不成立就返回FALSE。所以数组公式=A2$A$2:$A$11返回一个由TRUE和FALSE构成的逻辑数组。把数组公式=A2$A$2:$A$11构成的逻辑数组乘1,得到一个由0和1构成的新数组。SUMPRODU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论