option可数还是不可数Excel多条件求和 & SUMPRODUCT函数用法详解
hive trim函数[转]
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 D
1 Array 1 Array 1 Array 2 Array 2
2 3 4 2 7
3 8 6 6 7
4 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楼
三、 注意事项vb net从入门到精通pdf
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)activiti 会签
公式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:
函数sumifs使用演示以下是引用tony@cq在2008-1-3 17:32:46的发言:
这里我仅谈该函数的两个关键问题未涉及其它查函数,感谢gdliyy版主对文中不妥之处的指正。
这里我仅谈该函数的两个关键问题未涉及其它查函数,感谢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列,虽然单元格总个数相同,但实际的引用尺寸是完全不同的。
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:f1),结果是对生成的5行5列的新数组进行求和;
②相同维度引用的尺寸大小必须相同,同数组相乘运算法则,即:sumproduct(a1:a5*b1:b6),因为引用大小不同,导致最后一行单元格相乘得出#N/A错误。
③同样的,如果两个二维引用相乘,也是遵循数组运算的法则,两个引用的尺寸大小必须相同,即:sumproduct(a1:b5*c2:d6),结果为分别对应相乘后的5行2列的新数组进行求和,而sumproduct(a1:b5*c1:g2)的结果为错误,因此两引用尺寸不同。怎样快速学会excel表格
③同样的,如果两个二维引用相乘,也是遵循数组运算的法则,两个引用的尺寸大小必须相同,即:sumproduct(a1:b5*c2:d6),结果为分别对应相乘后的5行2列的新数组进行求和,而sumproduct(a1:b5*c1:g2)的结果为错误,因此两引用尺寸不同。怎样快速学会excel表格
最后,这类数组(引用)的运算还可以综合应用,也是正确的,如:
=SUMPRODUCT(a2:a6*b1:c1*d2:e6)
参数内部运算结果最终将得到一个新的数组,即:5行2列,最终由SUMPRODUCT求和得出结果。
=SUMPRODUCT(a2:a6*b1:c1*d2:e6)
参数内部运算结果最终将得到一个新的数组,即:5行2列,最终由SUMPRODUCT求和得出结果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论