语法:
SUM(参数1,参数2,...,参数30)
结果:返回所有参数中的数字之和。
说明:参数最多只能有30个,并且可以省略(即,,间没有参数或最后有一个,); 参数可以为引用、返回数值和文本及逻辑值的计算表达式、数组;
参数如为引用,可以是区域联合、区域交叉、三维区域引用,只要引用不再参与数组运算就可以 如果参数为错误值或为不能转换成数字的文本,将会导致错误。下面作一些详细的分析:
A.对文本、逻辑值及错误值的计算
对引用中的文本、数字型的文本、逻辑值忽略不计算。姓名3500a1公式=SUM(H11:J14),只计单元格中的数值,不计文本、逻辑值a2和I12格中的文本1000a3对数组中的文本、数字型的文本、逻辑值忽略不计。#N/A3500数组公式,不带{、}号输入,按ctrl+shift+enter三键结束。
公式{=SUM({\"姓名\
错误值,不管是在引用、参数、还是在数组中均返回错误,此处excel的帮助中有错误。#N/A引用中有错误值#DIV/0!作为参数的计算表达式的结果为错误值#VALUE!数组中有错误值参数或作为参数的计算表达式为不是数字型的文本,返回错误。要不返回错误用F中提出的方法。#VALUE!直接用不是数字的文本作参数#VALUE!以返回不是数字的文本表达式作为参数参数或作为参数的计算表达式为数字型的文本,转为数值后计算;参数或作为参数的计算表达式为逻辑值时,TRUE算1,FALSE算0。
34公式为=SUM(10,2>1,1>2,TRUE,FALSE,\"2\
其中的2>1为逻辑值TRUE算1,直接参数TRUE算1,其他的FALSE算0,文本2和表达式文本
B.以引用的运算作参数区域联合86请注意区域联合运算外的一对括号,那是不可少的,A此运算在SUM函数中算1个参数,当SUM中的参数1多于30个时可用此法来减少参数。2区域交叉70注意括号及2个引用间的空格,交叉引用3在SUM函数中也只算1个参数,此处实际运算返回4的是H31:K32和I29:J34相交的B31:C32区域。5联合区域不能在数组公式中继续进行计算。6交叉引用在数组公式中可以可以继续进行计算。
42公式为{=SUM(((H29:K34 I:I)>12)*(H29:K34 I:I))}实际计算的是I29:I34区域大于12的值的和
C.以三维引用作参数
63公式为=SUM(SUM:SUMIF!H29:H34),其中SUM:SUMIF!H29:H34为对从SUM工作表开始至的H29:H34的区域引用。
象这样的直接三维引用不可继续用于数组计算中。象下面这样的数组公式为什么是可以正确运算的?
191公式为{=SUM((H28:H34,I34,J29:K29),((H29:K34 I:I)>12)*(H29:K34 I:I),SUM:SUMIF!H29:H
请注意上面的数组公式中SUM函数有3个参数,第1个是联合区域引用,第2个是交叉区域引用计算的数
by chenjunExcelhome.net
由于联合区域和三维引用区域均没有继续进行数组运算,所以在SUM函数的数组公式中作为单独的参数提示:我们在使用SUM函数的数组公式时,经常只考虑有1个参数,其实是忘了SUM函数最多可有30个D.以没有打开的工作薄的指定表的指定区域引用作参数
600公式为=SUM('C:\\excelhomefunction\\[INDIRECT函数的使用.xls]Sheet2'!$B:$B)
引用了C:\\excelhomefunction\\INDIRECT函数的使用.xls 工作薄Sheet2表的整个B列。只要路径所指定的文件存在就不需要打开文件,如不存在就返回错误。
E.以(由一个元素的数组参数产生的)单元格区域引用作SUM函数的参数SUM函数不作为其他函数的参数可以使用,见G54格,1020公式为=SUM(INDIRECT(\"H\"&ROW()/2&\":J\"&ROW()/2+4))
实际相当于SUM(INDIRECT({\"H27:J31\,即对H27:J31区域求和。H54格是将这样的SUM函数放在IF函数中作为参数,就错误了,
因为ROW()返回的是一个数组并不是一个数值,这样在数组公式中INDIRECT函数返回的并不是一个二而是三维的区域引用(第3维的尺寸是1),所以SUM的计算出错。
可以将公式改为I54格的样子(本论坛的会员提出的方法,先用SUM函数将ROW函数的数组变为数值),或
E.以(由多个元素的数组参数产生的)单元格区域引用作SUM函数的参数
一般是INDIRECT函数和OFFSET函数才能以多个数组元素,产生一系列对多个单元格区域的引用,返回SUM函数只能对第1个元素指定的区域求和,如H64格的公式。61用内嵌SUMIF函数代替就正确了,见H65格。130F.以非数字型文本作参数的方法
A中指出参数或作为参数的计算表达式为不是数字型的文本,返回错误。要解决直接参数为非数字的问题,可按图设置。
#VALUE!按图设置后,Lotus1-2-不利因素是,所有的公式均按很多excel的表达式就会出错
G.SUM函数在数组公式中的一些应用
多条件计数A部门的男性员工有几人?3姓名部门性别工资(B92:B105=\"A\")*(C92:C105=\"男\")返回2个逻辑数组的乘积,A1A男1000TRUE*TRUE=1;TRUE*FALSE=0;FALSE*FALSE=0A2B女1500所以此处是逻辑与的关系,在excel的IF函数的条件中,0表示A3C女1000去除IF函数可以简化公式为3A4D女800A、B两部门的男性员工有几人?4A5B女2000基于TRUE+FALSE=1;FALSE+FALSE=0;TRUE+TRUE=2A6C男2500而(B92:B105=\"A\")和(B92:B105=\"B\")不可能同时满足,所以此A7D男1500再乘以(C92:C105=\"男\")作为并列条件。A8A男1000A部门所有女性员工和A部门工资1500以上的男性员工总数是A9C女10003A10D男2000因为(C92:C105=\"女\")和(D92:D105>=1500)可能同时满足,所A11A男3000NOT(TRUE)=FALSE;NOT(FALSE)=TRUE;NOT(0)=TRUA12B男900A13A女1800A14A女2500多条件求和
A部门女性员工的工资总额是多少?4300基于:FALSE*任何数=0;TRUE*任何数=原来的数
(B92:B105=\"A\")*(C92:C105=\"女\")为并列条件,*D92:D105后就是满足条件的工资。所有女性员工的工资和男性员工工资1500以上的工资总额是多少?19600如加IF函数就可以不用NOT(NOT())19600
提示:以(C92:C105=\"女\")+(D92:D105>=1500)这样的形式表示条件或的关系,在条件可能同时满足时要 或用IF函数判别。否则会多计数量的。统计偶数行的工资总和是多少?1130011300其中的(MOD(ROW(D92:D105),2)=0)就是判别是否偶数行。
特别提示:SUM函数在绝大多数的情况下用于数组公式中只能返回一个值,以后会讲到在某些特殊的 在多单元格数组公式中,可在不同的单元格返回不同的值,好象是返回了一个数组,但那 中表现,而不能继续进行数组运算的。
Excelhome.net中有很多的相关帖子,请大家多看看。
by chenjun
home.net
引用不再参与数组运算就可以;
工资婚姻状况1000TRUE2000FALSE1500#DIV/0!助中有错误。
F中提出的方法。式作为参数
LSE算0,文本2和表达式文本20转换后计算。
B101112131415C202122232425D303132333435H34为对从SUM工作表开始至SUMIF工作表结束
9:K34 I:I),SUM:SUMIF!H29:H34)}
2个是交叉区域引用计算的数组,第3个是三维区域引用。
的数组公式中作为单独的参数是可以的。是忘了SUM函数最多可有30个参数。
s]Sheet2'!$B:$B)
薄Sheet2表的整个B列。
102102CT函数返回的并不是一个二维的区域引用,
ROW函数的数组变为数值),或用SUMIF代替(见J54格)。
对多个单元格区域的引用,返回的是三维的区域引用,
置后,就按Lotus1-2-3的方式忽略文本。见H69格。素是,所有的公式均按Loutus1-2-3的方式处理,excel的表达式就会出错。
男\")返回2个逻辑数组的乘积,基于E=0;FALSE*FALSE=0
cel的IF函数的条件中,0表示FALSE,非0的数值表示TRUE。
如有2个以上并列条件,可将几个条件式相乘。
+FALSE=0;TRUE+TRUE=2
=\"B\")不可能同时满足,所以此处是条件或的关系,
资1500以上的男性员工总数是多少?
105>=1500)可能同时满足,所以再用NOT(NOT())转换,基于LSE)=TRUE;NOT(0)=TRUE;NOT(非0数值)=FALSE
关系,在条件可能同时满足时要用NOT(NOT())转换
值,以后会讲到在某些特殊的函数组合中好象是返回了一个数组,但那只能在单元格
因篇幅问题不能全部显示,请点此查看更多更全内容