我知道,SUM函数就像你学Excel的初恋,简单、直接,拉一个框,回车,数字就出来了。但在“筛选”这个魔鬼面前,你的初恋脆弱得不堪一击。
想象一个场景,你是不是也经历过?老板让你把第三季度“华东区”所有“A产品”的销售额拉出来。你啪啪啪一顿操作,筛选条件一挂,数据唰地一下就清爽了。你得意洋洋地在表格最底下敲下=SUM(...),选中那整列销售额,一个巨大的数字跳出来。你把这个数字报给老板。
五分钟后,老板的电话就追过来了:“你这数字怎么跟财务对不上?差了一大截!是不是把整个公司的业绩都算进来了?”
你满头大汗地回去检查。没错啊,筛选了啊,显示的都是华东区的A产品啊。你点开筛选,取消,再筛选,那个SUM出来的数字,纹丝不动。它就像个顽固的老头,不管你怎么跟他说“我只要看这些”,他偏要把藏在犄角旮旯里的所有东西都给你翻出来。
那一刻,你才恍然大悟——SUM这个函数,它是个“瞎子”。它不管你筛选了什么,隐藏了什么,只要在它框定的范围里,它就六亲不认,统统加起来。你看到的,和它计算的,根本就是两个世界。
这就是无数Excel新手的第一个大坑,也是你从“会用Excel”到“懂Excel”的分水岭。
那到底该怎么办?扔掉SUM这个老古董,我们来认识一下真正的英雄:SUBTOTAL 函数。
你别看它名字长得有点唬人,叫什么“分类汇总”。你就把它理解成SUM的“智能升级版”。它的核心作用,就是只计算你眼睛看得到的数据。
SUBTOTAL的用法稍微复杂一点点,但请信我,这绝对是你Excel生涯中最值得的一次学习。它的公式长这样:
=SUBTOTAL(function_num, ref1, [ref2], ...)
关键就在第一个参数,那个 function_num。这像是一个功能代码,你输入不同的数字,SUBTOTAL就能变身成不同的函数。比如你输入1,它就是求平均值(AVERAGE);输入2,它就是计数(COUNT)。而我们今天的主角,求和,对应的代码是 9。
所以,把刚才那个让你社死的=SUM(D2:D1000)换成=SUBTOTAL(9, D2:D1000)。
再试试看?你筛选“华东区”,底下的结果立刻变化;你再加一个“A产品”的筛选,结果又跟着变了。它变得“听话”了,变得“看得见”了,你筛选什么,它就计算什么。这才是我们想要的结果,不是吗?
但是,故事还没完。SUBTOTAL这个英雄,其实有两个形态,或者说,它有两个灵魂。
我们刚才用的代码是9。这个9,能识别出“筛选”后隐藏的行,但它识别不出“手动隐藏”的行。
什么意思?就是你右键点击某一行,选择“隐藏”——用代码9的SUBTOTAL,依然会把这一行给算进去。这在某些特殊场景下,又是一个隐藏的坑。你可能只是为了临时查看方便,手动隐藏了几行无关数据,结果它在背后又给你捅了一刀。
所以,我要给你SUBTOTAL的终极形态,它的完全体——代码 109。
=SUBTOTAL(109, D2:D1000)
这个109牛在哪?它忽略所有隐藏行,不管你是“筛选”掉的,还是“手动隐藏”的,只要看不见,它就绝对不计算。这才是真正的“所见即所得”。
记住这个数字,109。从今天起,在任何需要配合筛选进行计算的场景,把SUBTOTAL(109, ...)刻在你的DNA里。它是你数据准确性的金钟罩、铁布衫。SUM求和是109,AVERAGE求平均值是101,COUNT计数是102……所有100系列的代码,都是忽略一切隐藏行的“完全体”。
到这里,你已经超越了80%的Excel用户。但如果你面对的数据表,更加的“脏”,更加的“狂野”呢?
比如说,你的数据列里,混杂着一些#N/A!或者#DIV/0!这样的错误值。这些错误值就像数据表里的地雷,SUM和SUBTOTAL一旦踩上去,立刻就“阵亡”,整个结果都会变成一个大大的错误值,让你抓狂。
这时候,我们需要请出一位更强大的神仙,AGGREGATE 函数。
如果说SUBTOTAL是智能升级版,那AGGREGATE就是武装到牙齿的“特种兵”。它不仅能做到SUBTOTAL(109, ...)所有的事情,还能优雅地忽略掉那些错误值。
它的语法看起来更吓人:
=AGGREGATE(function_num, options, array, [k])
别怕,我们只看前三个参数。
第一个function_num,和SUBTOTAL类似,也是功能代码。9依然代表SUM。
第二个options,是AGGREGATE的精髓所在。这里面有很多选项,我们只需要记住一个王炸选项:3。
选项 3 的意思是:忽略隐藏行、错误值、嵌套的SUBTOTAL和AGGREGATE函数。简直是把所有可能出问题的路都给你堵死了。
第三个array,就是你要计算的数据范围。
所以,终极公式诞生了:
=AGGREGATE(9, 3, D2:D1000)
这个公式,你把它扔到任何一个需要筛选求和的脏数据表里,它都能给你一个稳如泰山、干净无误的正确结果。筛选?没问题。手动隐藏?没问题。数据里有错误值?它直接跳过去,没问题。
这,就是专业的做法。
最后,再教你一个“懒人”的办法,甚至连公式都不用写。
选中你所有的数据,按 Ctrl + T,把它转换成“超级表”(Table)。
这个功能,很多人都不知道,或者不常用,但它才是Excel数据处理的正确打开方式。一旦你的数据变成了“超级表”,它会自动带筛选功能。更神奇的是,你可以在“表格设计”选项卡里,勾选“汇总行”。
表格的最下方,立刻会出现一行“汇总”。默认可能是对最后一列求和。你点击那个求和的数字,旁边会出现一个下拉小箭头。点开它,你会发现,求和、平均值、计数、最大值……各种计算方式应有尽有。你随便选一个,然后去筛选你的表格。
你会惊喜地发现,这个汇总行的数字,会随着你的筛选而自动变化!
为什么?因为“超级表”的汇总行,它内置的公式,就是 SUBTOTAL!Excel已经替你把最正确的事情给做了。
所以,总结一下我们今天的进化之路:
- 告别
SUM:它在筛选面前就是个弟弟,只会给你添乱。 - 拥抱
SUBTOTAL:这是筛选求和的标配。日常使用请直接锁定SUBTOTAL(109, ...),这是最稳妥的选择。 - 精通
AGGREGATE:当你的数据源不干净,充满了各种错误值时,请出这位“拆弹专家”AGGREGATE(9, 3, ...),它能摆平一切。 - 善用“超级表”:对于新的表格,养成
Ctrl + T的好习惯,开启“汇总行”,让Excel自动帮你搞定一切,连公式都省了。
下次再有人问你Excel怎么筛选求和,别再傻傻地告诉他用SUM了。把这篇文章甩给他,或者,云淡风轻地敲出一个AGGREGATE,让他明白,Excel的世界,水深着呢。
【别再用SUM了。真的。】相关文章:
你是不是也这样?12-06
怎么打乱Excel顺序12-06
excel表格怎么分类12-06
Excel图标怎么设置12-06
excel怎么引用公式12-06
怎么excel删除按钮12-06
别再用SUM了。真的。12-06
别跟我提鼠标。12-06
excel怎么转换数据12-06
excel怎么调整高度12-06
excel怎么筛选删除12-06
“Excel行数怎么设置?”12-06
Excel怎么选择数据12-06