1、sum()函数如果参数是一个数组或引用,则只计算其中的数字。数组或引用中的空白单元格、逻辑值或文本将被忽略。(看下图)
2、sum()函数如果任意参数为错误值或为不能转换为数字的文本,Excel 将会显示错误。
要计算出结果,可以:
· H4{=SUM(IFERROR(H1:H3,0))}
· H4=SUMIF(H1:H3,"<9e+307")
· H4{=SUM(IF(ISERR(H1:H3),0,H1:H3))}
· H4{=SUM(IF(ISERROR(H1:H3),0,H1:H3))}
第一、第三和第四三个数组公式,外面的大括号不是手动加给的,而是Shift+Ctrl+Enter获取的,我们叫它区域数组公式。
依据以上两点说明,SUM()函数求一行既有文本又有数字的区域,它忽略文本只计算数字。
一、SUM()快速求和介绍:
1、对三张表汇总求和:
1第一种方法:=sum('*'!b2) 一般的方法:
步骤:在汇总表B2输入sum('*'!b2)按住Ctrl+Enter
· 第二种方法:按住Shift键直接鼠标点击最后一张求和工作表;
· 按住Shift键直接鼠标点击最后一张求和工作表。
2、 对一张表每个合计求和:
3、 合并单元格求和:
这个实例网上比较多,我在W10,微软2013版操作可以实现,sum()合并单元格其他版本无法实现。另外:快速求和快捷方式用
二、SUM()函数求和介绍:
=SUM() 、=SUMPRODUCT()=、SUBTOTAL()、=SUMIF()、=SUMIFS()
(一)、Sum()区域求和与SUMPRODUCT()区域求和,Sum()函数必须使用Shift+Ctrl+Enter区域数组结束,而SUMPRODUCT()函数不使用Shift+Ctrl+Enter,因为它是内存数组,内存数组一般要比区域数组计算快。比如:计算1到100的和。
l Q3{=SUM(ROW(1:100))}
l Q4=SUMPRODUCT(ROW(1:100))
a) 计算车间女职工工资多少?
l E10{=SUM((RIGHT(A10:A16,2)="车间")*(B10:B16="女")*C10:C16)}
l F10=SUMPRODUCT((RIGHT(A10:A16,2)="车间")*(B10:B16="女")*C10:C16)
l G10=SUMIFS(C10:C16,A10:A16,"*车间",B10:B16,"女")
l H10=SUMPRODUCT(--NOT(ISERR(FIND("车间",A10:A16)))*(B10:B16="女")*C10:C16)
l I10=SUMPRODUCT(--NOT(ISERR(SEARCH("*车间",A10:A16)))*(B10:B16="女")*C10:C16)
第一个公式解释:RIGHT(A10:A16,2)="车间"提取右边A10:A16的两个字段等于"车间"及(B10:B16="女")的工资C10:C16之和,(RIGHT(A10:A16,2)="车间")必须要括起来。
b) 计算车间男女工资之差
l E14=SUM(SUMIFS(C10:C16,A10:A16,"*车间",B10:B16,{"男","女"})*{1,-1})
公式解释:B10:B16,{"男","女"})*{1,-1} ,B10:B16是性别, SUMIFS第二参数,第三参数,{"男","女"}是一个常量数组,后面 {1,-1}将前面的男和女转换成正负数值,从而计算出男女工资之差。
l F14=SUMPRODUCT((RIGHT(A10:A16,2)="车间")*(B10:B16={"男","女"})*(C10:C16)*{1,-1})
l G14{=SUM((RIGHT(A10:A16,2)="车间")*(B10:B16={"男","女"})*(C10:C16)*{1,-1})}
a) 汇总车间女职工人数
l E18{=SUM((B10:B16="女")*(RIGHT(A10:A16,2)="车间"))}
l F18=SUMPRODUCT((B10:B16="女")*(RIGHT(A10:A16,2)="车间"))
b) 求男职工人数
l E21{=SUM((B10:B16="男")*1)}
l F21=SUMPRODUCT((B10:B16="男")*1)
c) 求女职工工资最高前俩位工资之总和
l E24{=SUM(SUMPRODUCT(LARGE(IF(B10:B16=B14,C10:C16,),{1,2})))}
l F24{=SUM(LARGE(IF(B10:B16=B15,C10:C16,),ROW(1:2)))}
d) 求男职工大于100的工资和
l E27{=SUM((B10:B16="男")*(C10:C16>100)*C10:C16)}
l F27=SUMPRODUCT((B10:B16="男")*(C10:C16>100)*C10:C16)
e) 求职工大于100,小于800的工资之和
l E30{=SUM((C10:C16>100)*(C10:C16<800)*C10:C16)}
l F30=SUMPRODUCT((C10:C16>100)*(C10:C16<800)*C10:C16)
l G30=SUM(SUMIF(C10:C16,"<"&{200,800})*{-1,1})
f) 求一至四个车间男职工人数
l E43{=SUM((A10:A16={"一","二","三","四"}&"车间")*(B10:B16="男")*C10:C16)}
l F43=SUMPRODUCT((A10:A16={"一","二","三","四"}&"车间")*(B10:B16="男")*C10:C16)
(二) 隔行求和
l J3{=SUM((MOD(COLUMN($B3:$I3),2)=0)*$B3:$I3)}
l K3=SUMPRODUCT((MOD(COLUMN($B3:$I3),2)=1)*$B3:$I3)
(三) 求前三名销售人员销售额
l H2{=SUM(LARGE(C2:C9,{1,2,3}))}
l I2{=SUM(LARGE(C2:C9,ROW(1:3)))}
l H3=SUMPRODUCT(LARGE(C2:C9,{1,2,3}))
l H3=SUMPRODUCT(LARGE(C2:C9,ROW(1:3)))
(四) 求取区域(B9:K10)去掉一个最小值去掉一个最大值之和
l F9=SUM((B6:K7))-SUM(SMALL(B6:K7,1))-SUM(LARGE(B6:K7,1))
l E9=SUMPRODUCT((B6:K7))-SUM(SMALL(B6:K7,1))-SUM(LARGE(B6:K7,1))
(五) 计算排名
l C2{=SUM(($B$2:$B$7>B2)/COUNTIF($B$2:$B$7,$B$2:$B$7))+1}
l B2=SUMPRODUCT(($B$2:$B$7>B2)/COUNTIF($B$2:$B$7,$B$2:$B$7))+1
l K2=CONCATENATE(H2,TEXT(SUM((H$2:H$22=$H2)*($J$2:$J$22>=J2)/COUNTIF(J$2:J$22,$J$2:$J$22)),"第0名"))
(六) 求每个人的所得
l G1{=SUM(IF(ISERR(FIND(F1,C$2:C$10)),0,1)*A$2:A$10*B$2:B$10*(1/(LEN(TRIM(C$2:C$10))-LEN(SUBSTITUTE(TRIM(C$2:C$10),"",))+1)))}
l H1=SUMPRODUCT(ISNUMBER(FIND(F1,C$2:C$10))*A$2:A$10*B$2:B$10*(1/(LEN(TRIM(C$2:C$10))-LEN(SUBSTITUTE(TRIM(C$2:C$10),"",))+1)))
(七) 求某人三科成绩之和
l O2{=SUM(($A$2:$A$6=K2)*NOT(ISERR(FIND(B$1:H$1,L2)))*B$2:H$6)}
l O3=SUMPRODUCT(($A$2:$A$6=K3)*NOT(ISERR(FIND(B$1:H$1,L3)))*B$2:H$6)
l N2 =SUM(MMULT(--(TRANSPOSE($B$1:$H$1)=MID(L2,{1,3,5},2)),(ROW($1:$3))^0)*TRANSPOSE(B2:H2))
l M2 =SUMPRODUCT((A$2:A$6=K2)*(1-ISERR(FIND($B$1:$H$1,L2)))*B$2:H$6)
l M3 {=SUM((A$2:A$6=K3)*(1-ISERR(FIND($B$1:$H$1,L3)))*B$2:H$6)}
(八) 返回每个人最后一次考核分数的平均分
l I2 {=SUM(IF(B3:F10,"",B2:F9))/COUNT(B2:F2)}
l =SUMIF(B3:F10,"",B2:F9)/COUNT(B2:F2)
(九) 求选定公司收入之和
l E4 {=SUM(LOOKUP(A4:C4,B1:L2))}
l F4=SUMPRODUCT(SUMIF(B1:L1,A4:C4,B2:L2))
l C6 =SUM(HLOOKUP(T(IF({1},A4:C4)),$A$1:$L$2,2,FALSE))
l E6{=SUM(HLOOKUP(T(IF(1,A4:C4&{""})),$A$1:$L$2,2,FALSE))}
l D7 {=SUM(COUNTIF(A4:C4,B1:L1)*B2:L2)}
l E7 =SUM(HLOOKUP(T(IF({1},A4:C4)),$A$1:$L$2,2,FALSE))
l D8{ =SUM(OFFSET(A2,,N(IF(1,MATCH(A4:C4,B1:L1,)))))}
l E8{ =SUM(INDEX(B2:L2,N(IF(1,MATCH(A4:C4,B1:L1,)))))}
l D9 {=SUM(N(OFFSET(A2,,MATCH(A4:C4,B1:L1,))))}
l E9{ =MMULT(COUNTIF(A4:C4,B1:L1),TRANSPOSE(B2:L2))}
(十) 做查询使用
l G2{=IFERROR(SUM(($A$2:$A$7=$E$2)*($B$2:$B$7=$F$2)*C2:C7),"")}
l H2=IFERROR(SUMPRODUCT(($A$2:$A$7=$E$2)*($B$2:$B$7=$F$2)*C2:C7),"")
(十一) 依据行A2变化求平均值
l A4=SUM(2:2)/SUMIF(2:2,"<>",1:1)
l A6=SUM(2:2)/SUM(OFFSET(A1,,,,COUNT(2:2)))
注意:“<>”的作用是第2行中满足不为空的对应第1行数值求和。
(十二) 多列 (根据日期求和)
l C4 =SUM(OFFSET(C4,,MATCH(C$3,D$3:O$3,)):O4)
l G13 =SUM(INDEX($D4:$O4,MATCH($C$3,$D$3:$O$3,0)):O4)
注意:是依据C3单元格选择日期计算
(十三) 提取1至9的数字并相加求和
计算A6数字合计
l D6 {=SUM(MID(A6,ROW(INDIRECT("1:"&LEN(A6))),1)*1)}
l C6 =SUMPRODUCT(MID(A6,ROW(INDIRECT("1:"&LEN(A6))),1)*1)
计算文本数字
l D5 =SUM(MID(A5,ROW(INDIRECT("1:"&LEN(A5))),1)*1)
l C5 =SUMPRODUCT(MID(A5,ROW(INDIRECT("1:"&LEN(A5))),1)*1)
计算带有字母的数字之和
l D4 {=SUM(IFERROR(MID(A4,ROW(INDIRECT("1:"&LEN(A4))),1)/1,0))}
l C4{=SUMPRODUCT(IFERROR(MID(A4,ROW(INDIRECT("1:"&LEN(A4))),1)/1,0))}
(十四) 在筛选状态下求合计
通过B列名称或C列供应商筛选,求总价:
l I1{=SUM($D2:$D11*$E2:$E11*SUBTOTAL(103,OFFSET($E1,ROW(1:10),)))}
l H1=SUMPRODUCT($D2:$D11*$E2:$E11*SUBTOTAL(103,OFFSET($E1,ROW(1:10),)))
l K1 {=SUM(D2:D11*SUBTOTAL(109,OFFSET(E1,ROW(1:10),)))}
l J1=SUMPRODUCT(D2:D11*SUBTOTAL(109,OFFSET(E1,ROW(1:10),)))
有B1:B10,10个数据,根据筛选结果,统计大于5小于等于30的数值个数。
l H15{=SUM(SUBTOTAL(103,OFFSET(E1,ROW(1:99),))*(E2:E100>=5)*(E2:E100<=30))}
l I15=SUMPRODUCT(SUBTOTAL(103,OFFSET(E1,ROW(1:99),))*(E2:E100>=5)*(E2:E100<=30))
(十五) 汇总6张表数据
l B2{=SUM(SUMIF(INDIRECT(ROW($1:$6)&"月!A:A"),"*"&$A2&"*",INDIRECT(ROW($1:$6)&"月!B:B")))}
l B2=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$6)&"月!A:A"),"*"&$A2&"*",INDIRECT(ROW($1:$6)&"月!B:B")))
全部讲解告一段落,总之,SUM()函数极其强大,不可小觑,也许你还能举出更多实例,那说明我还不与您,我还得进一步学习。因为,360doc无法上传gif,也无法上传文件,只能截图加文字说明,如果需要文件可以短信联系。
联系客服