【 – 话题作文】
sumif使用(一)
SUMIFS 函数
本文介绍 Microsoft Excel 中 SUMIFS函数 (函数:函数是预先编写的公式,可以对一个或多个值执行运算,用公式执行很长或复杂的计算时。)的公式语法和用法。
说明
对区域 (区域:工作表上的两个或多个单元格。区域中的单元格可以相邻或不相邻。)中满足多个条件的单元数值求和:B1:B20 中的相应数值大于零 (0) 且 C1:C20 中的相应数值小于 10,则可以使用以下公式:=SUMIFS(A1:A17, B1:B17, ">0", C1:C17, "<10")
要点 SUMIFS 和 SUMIF 函数的参数顺序有所不同。具体而言,sum_range 参数在 SUMIFS 中是第一个参数,而在 SU数,请确保按正确的顺序放置参数。
语法
SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], …)
SUMIFS 函数语法具有以下参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。):
sum_range 必需。对一个或多个单元格求和,包括数字或包含数字的名称、区域或单元格引用 (单元格引用criteria_range1 必需。在其中计算关联条件的第一个区域。criteria1 必需。条件的形式为数字、表达式、单元格引用或文本,可用来定义将对 criteria_range1 参数中的哪些单元格criteria_range2, criteria2, " 可选。附加的区域及其关联条件。最多允许 127 个区域/条件对。
注解
仅在 sum_range 参数中的单元格满足所有相应的指定条件时,才对该单元格求和。例如,假设一个公式中包含两个 criterisum_range 中包含 TRUE 的单元格计算为 1;sum_range 中包含 FALSE 的单元格计算为 0(零)。
与 SUMIF 函数中的区域和条件参数不同,SUMIFS 函数中每个 criteria_range 参数包含的行数和列数必须与 您可以在条件中使用通配符,即问号 (?) 和星号 (*)。问号匹配任一单个字符;星号匹配任一字符序列。如果
示例 2:根据支付的利息对银行帐户中的金额求和
总计
金额(人民币)支付利息(2000)支付利息(2001)支付利息(2002)公式500
帐户 11001%1%0.50%
说明
2000 年利息高于 3% 以及2001 年利息高于或等于 2%的每个银行帐户的总额。
帐户 23900.50%1.30%3%结果500
帐户 383213%2.10%1%
帐户 45004%2%4%
sum支持
500
8711
2002 年利息介于 1% 到 3%8711之间以及 2001 年利息高于1% 的每个银行帐户的总额。
示例 3:对特定日期的降雨量求和
每日测量值雨水(总毫米数)平均温度(度)平均风速(公里/小时)公式8.8
第一天3.3356.5
第二天0.81919.5
第三天5.5196
第四天5.537.56.5
sum支持
说明结果计算平均温度至少为摄氏 208.8度以及平均风速小于每小时10 公里的这些天的总降水量。
只能对单元格 B2 和 E2 求和,因为,对于每个列(从 B到 E),行 3 和 4 中的值必须分别满足 criteria1 和criteria2。单元格 B3 和 B4同时满足这两个条件,E3 和E4 也是如此。但是,C3 或C4 哪个条件都不满足。最后,尽管 D4 满足 criteria2,但 D3 不满足 criteria1。
8.8
示例 4:对特定日期的上午和下午降雨量求和
上午和下午的测量值上午:雨水(总毫米数)
第一天
1.3
第二天
第三天
1.5
第四天
3
下午:雨水(总毫米数)上午:平均温度(度)下午:平均温度(度)上午:平均风速(公里/小时)下午:平均风速(公里/小时)公式
3.5
20.842.5
363413
24146
20188
18371
033412
说明结果
3.5计算平均温度至少为摄氏 20
度以及平均风速小于每小时10 公里的 12 小时周期的总降水量。
只对单元格 B3、C2 和 D2 求A65: =SUMIFS(B58:E59, B60:E61, ">=20", B62:E63, "<10")总和,因为其相应单元格同时满足这两个条件。B3 的相应单元格为 B5 和 B7,C2 的相应单元格为 C4 和 C6,而 D2的相应单元格为 D4 和 D6。作为被排除在运算外的数据示例,B2 的相应单元格(B4 和B6)没有同时满足这两个条件;具体就是,单元格 B6 不满足条件,因为其值 (13) 大于 criteria2 (10)。
示例 5:以引用形式或使用通配符输入条件
房子House1House2House3House4House5>2公式
625000
平方英尺
12001580220017502140
卧室数
23434浴室数
是否有车库1是1.532.53
否是是是
建造年份
1940
1965200320011998
是y*说明结果将至少有 3 间卧室和 1 个车625000库且截至 2009 年建造年限在5 至 10 年之间的那些房子的价格相加。
返回至少有 3 间卧室和 1 个车库且截至 2009 年建造年限在 5 至 10 年之间的房子的平均价格。
312500
625000
312500
A78: =SUMIFS(G71:G75,C
376000
返回至少有 3 间卧室和 1 个车库且截至 2009 年建造年限在 5 至 10 年之间,面积不少于2000平方英尺的房子的平均价格。
376000
A79: =AVERAGEIFS(G71:G
A80: =SUMIFS
F100: =SUMPRODUCT(1/COUNTIFS(A85:A105,A85:A105,B85:B105,B85:B105))G86: =SUMPRODUCT(C85:C105*(A85:A105="A"))
G87: =SUMPRODUCT(C85:C105*(A85:A105="A")*(B85:B105=1))
G88: =SUMPRODUCT(C85:C105*(A85:A105="A")*(B85:B105={1,3}))G89: =SUMPRODUCT(C85:C105*(A85:A105={"A","C"}))
G90: =SUMPRODUCT(C85:C105*(A85:A105={"A","C"})*(B85:B105=1))
G91: =SUMPRODUCT(C85:C105*(A85:A105={"A","C"})*(B85:B105={1,3}))
G92: =SUMPRODUCT(C85:C105*(A85:A105="A")*(B85:B105={1,3}))+SUMPRODUCT(C85:C105*(A85:A105="C")*(B85:B105={1G93: =SUMPRODUCT(C85:C105*(A85:A105="A")*(B85:B105={1,3,4}))+SUMPRODUCT(C85:C105*(A85:A105="C")*(B85:B105=G94: =SUMPRODUCT(C85:C105*(A85:A105="A")*(B85:B105={1,3,4}))+SUMPRODUCT(C85:C105*(A85:A105="B")*(B85:B105=G95: =SUMPRODUCT(–(A85:A105="A"))
G96: =SUMPRODUCT(–(A85:A105={"A","B"}))
G97: =SUMPRODUCT((A85:A105={"A","B"})*(B85:B105=1))
G98: =SUMPRODUCT((A85:A105={"A","B"})*(B85:B105=1))+SUMPRODUCT((A85:A105={"A","B"})*(B85:B105=3))G99: =SUMPRODUCT((A85:A105={"A","B"})*(B85:B105={1,3}))
G100: =SUMPRODUCT(–(MATCH(A85:A105&B85:B105,A85:A105&B85:B105,)=ROW(A85:A105)-1))H86: =SUMIF(A85:A105,"A",C85:C105)
H89: =SUM(SUMIF(A85:A105,{"A","C"},C85:C105))I95: =COUNTIF(A85:A105,"A")
I96: =SUM(COUNTIF(A85:A105,{"A","B"}))
I100: =SUMPRODUCT(1/COUNTIF(D85:D105,D85:D105))
sumif使用(二)
SUM函数的使用
语法:
SUM(参数1,参数2,…,参数30)
结果:返回所有参数中的数字之和。
说明:参数最多只能有30个,并且可以省略(即,,间没有参数或最后有一个,);
参数可以为引用、返回数值和文本及逻辑值的计算表达式、数组;
参数如为引用,可以是区域联合、区域交叉、三维区域引用,只要引用不再参与数组运算就可以 如果参数为错误值或为不能转换成数字的文本,将会导致错误。
下面作一些详细的分析:
A.对文本、逻辑值及错误值的计算
对引用中的文本、数字型的文本、逻辑值忽略不计算。
3500公式
=SUM(H11:J14),只计单元格中的数值,不计文本、逻辑值
和I12格中的文本
1000对数组中的文本、数字型的文本、逻辑值忽略不计。3500数组公式,不带{、}号输入,按ctrl+shift+enter三键结束。
公式{=SUM({"姓名","a1","1000",TRUE,2000,FALSE,1500},H11:H14="a2")}
excel的帮助中有错误。
F中提出的方法。参数或作为参数的计算表达式为逻辑值时,TRUE算1,FALSE算0。
34公式为=SUM(10,2>1,1>2,TRUE,FALSE,"2","2"&"0")
其中的2>1为逻辑值TRUE算1,直接参数TRUE算1,其他的FALSE算0,文本2和表达式文本
B.以引用的运算作参数
区域联合86此运算在SUM函数中算1个参数,当SUM中的参数多于30个时可用此法来减少参数。区域交叉70注意括号及2个引用间的空格,交叉引用在SUM函数中也只算1个参数,此处实际运算返回的是H31:K32和I29:J34相交的B31:C32区域。联合区域不能在数组公式中继续进行计算。交叉引用在数组公式中可以可以继续进行计算。
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个是交叉区域引用计算的数
由于联合区域和三维引用区域均没有继续进行数组运算,所以在SUM函数的数组公式中作为单独的参数提示:我们在使用SUM函数的数组公式时,经常只考虑有1个参数,其实是忘了SUM函数最多可有30个
D.以没有打开的工作薄的指定表的指定区域引用作参数600公式为=SUM('C:\excelhomefunction\[INDIRECT函数的使用.xls]Sheet2'!$B:$B)
引用了C:\excelhomefunction\INDIRECT函数的使用.xls 工作薄Sheet2表的整个B列。
只要路径所指定的文件存在就不需要打开文件,如不存在就返回错误。
E.以(由一个元素的数组参数产生的)单元格区域引用作SUMSUM函数不作为其他函数的参数可以使用,见G54格,公式为=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格。130
F.以非数字型文本作参数的方法
A中指出参数或作为参数的计算表达式为不是数字型的文本,返回错误。
要解决直接参数为非数字的问题,可按图设置。#VALUE!
按图设置后,Lotus1-2-
不利因素是,所有的公式均按
很多excel的表达式就会出错
G.SUM函数在数组公式中的一些应用
多条件计数A部门的男性员工有几人?3姓名部门性别工资(B92:B105="A")*(C92:C105="男")返回2个逻辑数组的乘积,A1A男1000TRUE*TRUE=1;TRUE*FALSE=0;FALSE*FALSE=0
A2B女1500所以此处是逻辑与的关系,在excel的IF函数的条件中,0表示A3C女1000去除IF函数可以简化公式为3
A4D女800A、B两部门的男性员工有几人?4
A5B女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女10003
A10D男2000因为(C92:C105="女")和(D92:D105>=1500)可能同时满足,所A11A男3000NOT(TRUE)=FALSE;NOT(FALSE)=TRUE;NOT(0)=TRUA12B男900
A13A女1800
A14A女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函数判别。否则会多计数量的。
统计偶数行的工资总和是多少?11300
其中的(MOD(ROW(D92:D105),2)=0)就是判别是否偶数行。
特别提示:SUM函数在绝大多数的情况下用于数组公式中只能返回一个值,以后会讲到在某些特殊的 在多单元格数组公式中,可在不同的单元格返回不同的值,好象是返回了一个数组,但那 中表现,而不能继续进行数组运算的。
Excelhome.net中有很多的相关帖子,请大家多看看。
引用不再参与数组运算就可以;
助中有错误。
F中提出的方法。
式作为参数
LSE算0,文本
2和表达式文本20转换后计算。
H34为对从SUM工作表开始至SUMIF工作表结束9:K34 I:I),SUM:SUMIF!H29:H34)}
2个是交叉区域引用计算的数组,第3个是三维区域引用。
的数组公式中作为单独的参数是可以的。
是忘了SUM函数最多可有30个参数。
s]Sheet2'!$B:$B)
薄Sheet2表的整个B列。
CT函数返回的并不是一个二维的区域引用,
ROW函数的数组变为数值),或用SUMIF代替(见J54格)。对多个单元格区域的引用,返回的是三维的区域引用,
置后,就按Lotus1-2-3的方式忽略文本。见H69格。素是,所有的公式均按Loutus1-2-3的方式处理,excel的表达式就会出错。
sumif使用(三)
SUMIF函数的使用
语法:
SUMIF(引用1,条件,引用2)
结果:按引用1中满足条件的单元格位置求引用2中对应位置的单元格中数值的总和。
说明:引用1和引用2两个参数必须是对区域的引用或由数组所定义的多个区域的引用,不能是直接的数 引用2参数可以省略,省略时相当于同引用1参数;
条件参数的用法同COUNTIF函数,其形式可以为数字、表达式、文本或数组,只能用单条件不 对引用2的求和方式同SUM函数,对引用2中的文本、数字型的文本、逻辑值忽略不计算,如果引提示:SUMIF函数一般只返回一个数值;当条件为数组时可以返回一个数组;
由于第1第3参数必须是对区域的引用,所以可以用以数组定义的多个区域引用(我们暂称之为“ 当参数为“由数组产生的三维引用”时,SUMIF函数返回一个同尺寸的数组,数组运算的规则请 “数组的一些特殊用途”一贴。因为很多的用法与SUM和COUNTIF中的相同,下面就说得简单一点
A.省略引用2参数
310公式=SUMIF(H28:K34,">20"),求出区域H28:K34中>20的数值总和,省略第3个参数就在第1
B.不省略参数
165公式=SUMIF(H28:I34,">10",J28:K34),注意2个引用区域的行列数要相同,
在H28:I34中按>10条件返回J28:K34中对应格中值的和。
C.简化B中第3个参数写法的方法
这是Excelhelp.net中一位网友提出的用法。
165公式=SUMIF(H28:I34,">10",J28),其第3个参数只写左上单元格引用
SUMIF函数会自动按第1个参数的尺寸大小扩展第3个参数的区域引用。
这样写法的麻烦是如果J28:K34区域中变化的不是J28格,公式不会自动重算。
大家可以改变一个格中的值试试!