求和在Excel中是个聊不完的话题,如果SUM求和是个没有底线的“求和”,而SUMIF就是有底线的”求和“,有底线归有底线,但还是继承了SUM函数的一个特性,就是容错性,即:非数字单元格,会识别为0进行计算。
今天我就来聊聊这个有底线的SUMIF函数的用法。
01SUMIF
语法结构:SUMIF(条件区域,比较表达式,求和范围)
条件区域:单元格引用范围;
条件表达式:可为数值,字符串,含有比较表达式的单元格引用地址,并支持通配符(*?~);
注:比较运算符中的=,常省略不写;
求和范围:选填参数,省略则会按条件区域来计算,录入单元格或单元格引用范围,都会以录入引用范围最左上角的单元格为开始单元格,以条件引用范围的行高和列宽为扩展区域进行计算;
求和原理:
通过条件区域和条件表达式,确认满足条件所在的相对位置,再以求和范围的起始单元格为基准,按相对位置的数据进行求和;
有很多学生不止一次的问我:学习某个函数,掌握到什么程度才能算好呢?怎么衡量?
我:学一个函数,说白了就是掌握参数与结果的对应关系,总结参数各个类型的用法,边界,以及对函数结果的关系。哪跟着我的思路,解析一下SUMIF函数的功能。
要解析就得从条件区域开始,参数为引用单元格范围,或行或列,哪我以列为例,将参数分为简单的两类:单列和多列;
02条件区域:单列
根据条件区域和求和范围的关系,分为同一列,不同列:
①同一列:这种情况多为整列都为数字,
条件表达式:多数由比较运算符和数字组成,这时条件表达式必须用双引号“包裹,否则会弹出”此公式有问题”的错误;求和范围:多数省略1.现有公司部门销售表,汇总出销售额大于10000的销售总和。
总和公式比较简单:=SUMIF(C:C,">10000");
除了上面简单写法,该函数还有一种特殊的写法,就是一次可执行多条件同时筛选求和,说白了就是条件表达式支持数组格式。不过这种格式,并不表示多条件有任何的关联,得到的结果也是依次执行条件的结果。在默认情况下,只显示第一组结果,其它的结果,需要借助函数才能读取。
我看到很多学生有用SUM读取结果,这是不对的,使用SUM得到结果是多个筛选条件的总和,其中有可能包含对某些单元格重复求和,而正确的做法是使用函数INDEX来读取。
2.数据同上,在F1,F2分别对>10000和<=10000的销售额求和?
通常的做法是:F1录入公式=SUMIF(C:C,">10000"),F2录入公式=SUMIF(C:C,"<=10000");
还有一种高级点的做法,在F1录入=INDEX(SUMIF(C:C,{">10000","<=10000"}),row()),拖拽填充公式至F2;
INDEX的用法详见链接:Excel的搭档函数INDEX,MATCH,你用对了吗?
虽然这个简单的例子并不能凸显这种写法的便利,它还有更多玩法,稍后再叙。
②不同列:相比较上面的例子,会稍微有点复杂,我们通过两个例子深入了解一下。
3.表格数据同上,求某个部门的销售额的总和?
常见的做法:在求和单元格录入:=SUMIF(B:B,”销售部1”,C:C);
如果你熟知函数的求和原理,你可以写的更简洁些,=SUMIF(B:B,”销售部1”,C1),不过即便这么做了,如果是面试的话,这种答案得不了高分。
正确的做法是,将部门做成列表,具体操作步骤如下:
1.G1,H1分别录入部门,销售业绩汇总;2.选中G2,点击【数据】下的【数据验证】按钮,设置选项卡,允许(A):选序列,来源(s)录入:销售部1,销售部2,销售部3,销售部4,点击确定;3.H2输入公式:=SUMIF(B:B,G2,$C$1),回车。
4.数据同上,汇总每个部门的销售额总和?
现在再看见这个问题,是不是异常简单,只需两步:
1选中案例1中的G2单元格,鼠标移至G2右下角,鼠标变成实心+时,拖拽至G5;2.选中H2,鼠标移至右下角,鼠标变实心+,双击,填充公式搞定。不过,这是第1案例的基础上做,看似简单,若累加上上面的操作,并不简单,其实还有更简化的操作:
1.在G2,录入1,鼠标移至右下角,鼠标变实心+,按ctrl,拖拽至G5,然后ctrl+1或鼠标右键菜单选设置单元格格式,设置自定义,在类型(T)录入:销售部0或销售部#,点击确定;2.在H2录入公式=SUMIF(B:B,"*"&G2,$C$1),鼠标移至右小角,变实心+,双击完成公式填充。
这里用到了通配符,在Excel中通配符一共有3个分别*?~,其中*表示0到多个字符,但当其单独使用时,会被识别为非空。比如公式中,“*“&1,表示1结尾的任何字符串,包括单独的数字1,通过*和数字就足以筛选区别其它部门了。
如果是你,你会选择用什么方法来做呢?
03条件区域:多列
SUMIF函数不光具备汇总求和的功能,它还有一个隐含的功能就是查询,当汇总的数据只有一条,就秒变查询了。
如果想用一个公式搞定,既有查询,又有汇总,就需要用到条件区域多列的特性。
希望通过下面这个特殊的例子,能给SUMIF函数使用上的灵感,费言少叙,上个例子:
例:现有学生成绩表:
要求查询出任宏国,温玉方,马海建,周彦生的语文成绩;女生数学成绩总和,201801班英语成绩总和?
当我把这个例子,给我的学生做的时候,大部分人把:前四写了一个公式,后两个分别用单独的公式做的,屏幕前的你是不是也是这种思路呢?
不过我可以通过一个SUMIF和INDEX公式组合搞定,具体操作如下:
1.H1:H6,分别录入条件,任宏国,温玉方,马海建,周彦生,女,201801班;2.在I1录入公式=INDEX(SUMIF(A:C,$H$1:$H$6,$D$1),ROW()),拖拽至I6,完成公式填充。
这个例子看似没有规律可言,其实筛选条件和结果有着对应关系的,数据总共6列,姓名和语文成绩对应,性别和数学成绩对应,班级和英语成绩对应;
这也是SUMIF函数求和汇总的原则:筛选条件表达式在条件区域中相对的列标位置,和汇总求和的结果区域相对列标位置相同;
换成大白话就是:条件筛选时,在第2列找到符合条件的数据,在结果区域输出第2列对应行的数据或多个数据的总和。
文字难理解,就来张原理图:
04总结:
聊到这,SUMIF函数的基本功能暂告一段落,最后概括了几句话仅供参考:
1.条件区域:一列多列与结果为对应关系,对应结果区域有数据,返回结果,无返回0;2.条件表达式:一个条件或多个条件,返回结果与顺序无关,关键看匹配出结果在条件区域的位置。3.结果区域:录入参数只需录入开始单元格位置即可,其它可忽略,若结果有误,先查该参数是否与条件区域有错误的情况。
免责声明:本文不构成任何商业建议,投资有风险,选择需谨慎!本站发布的图文一切为分享交流,传播正能量,此文不保证数据的准确性,内容仅供参考
关键词: sumif函数的使用方法