ARTICLE · 1240390
Excel筛选后,为什么总金额没变?换这个公式就能跟着算


月底了,核查报销表,想先看看还有多少钱没报。
在“报销状态”里只勾选“待报销”,已经报过的记录从表里消失了,可下面那个合计金额,一分钱没少——还是全部的数。
你盯着Excel表:筛选明明生效了,合计怎么没跟着动?是不是自己哪里点错了?
不是你点错了,问题出在求和公式上:筛选只是把记录藏了起来,SUM 还是会把它们一起加进去。
想让合计金额跟着筛选结果变化,可以把 Excel 求和公式改成下面这样:
=SUBTOTAL(109,C2:C6)这里的 C2:C6 是金额所在的位置,下面用一张小表,把操作走一遍。
先把表准备好
下面这五笔费用演示数据,不是真实报销数据,金额单位为元。
在空白工作表中,A列放费用项目,B列放报销状态,C列放金额。表头在第1行,五笔记录放在第2—6行,金额只输入数字。
这五笔费用一共600元。其中还有三笔待报销:
120+240+60=420元。
我们要让 Excel 在只显示待报销记录时,也只合计这420元。
为什么筛选之后,SUM还是600
先在 E8 输入这条 Excel 公式,计算全部金额:
=SUM(C2:C6)结果是600。汇总结果放在第8、9行,避开第2—6行的数据区,筛选时就不会和费用记录一起被隐藏。
接着选中 A1:C6,点击菜单中的“数据”,开启“筛选”,然后点击 B列“报销状态”旁的小箭头,只勾选“待报销”,确认。
现在表里只看得到打车、住宿、快递三笔记录,但 E8还是600。
SUM仍然在计算C2到C6的全部金额,不会因为你筛掉两行,就自动少算两行。
所以,遇到这种情况,不用反复筛选,也不用删除已经报销的记录,换一种求和方式就行。
把SUM换成SUBTOTAL
在 E9输入:
=SUBTOTAL(109,C2:C6)此时仍然只显示“待报销”记录,E9应该是 420。
这条公式可以拆成两部分看:
- 109
:表示“求和”,而且筛选掉的行、手动隐藏的行都不计入。 - C2:C6
:要合计的金额范围。换成你的表时,改成自己的金额位置。
你可能在别处见过 =SUBTOTAL(9,...),9 和 109 都是求和,区别只有一个:9 只把筛选掉的行排除在外,手动隐藏的行照样算;109 两种都排除。想省心,统一用 109。
你不用每次筛选后再改公式。试着在状态筛选里换一下勾选项:
上表假设没有手动隐藏整行;这种情况下,用 9 或 109 结果一样。
这样,在 Excel 中筛选数据后,就能看到筛选保留记录的合计。这个办公 Excel 技巧适合需要反复切换条件、查看不同费用合计的表。
用到自己的表里,改哪里
假设你的金额在 D列,第2行到第500行,就写:
=SUBTOTAL(109,D2:D500)把公式放在这段金额范围以外的单元格中,比如放在数据区下方的 F502,避免汇总结果随明细行一起被筛掉;不要把它放进 D2:D500,否则会把公式自己也算进去,产生循环引用。
再确认两件事:
新增记录有没有超出范围:如果新费用写到了第501行,而公式仍然只到第500行,那笔费用就不会计入。
金额是不是数字:输入“120元”会变成文本,不能按正常金额参与这条公式的加总,金额单元格里输入120,单位另写在表头即可。
还有一点要分清:这条公式合计的是当前显示的金额,如果没有另外手动隐藏行,取消筛选后,它就恢复计算范围内的全部金额。手动隐藏的行仍然不会计入。如果需要始终统计“待报销”,不受页面筛选影响,那是另一种需求,不能直接拿这条公式代替。
下次核对报销、订单或其他费用表时,看到“明明筛过了,合计却没变”,先看一下用的是不是 SUM。
需要合计全部记录,用SUM;需要金额跟着筛选变化,用SUBTOTAL。
你还有哪张表卡住了?
如果你也经常要整理报销、订单或工作报表,可以关注「哟喂软件」。这里会把具体的办公问题拆开讲,尽量让你看完就能照着做。
你做表时最常卡在哪一步:公式看不懂、筛选后金额对不上,还是每个月都要重复整理?欢迎在留言区说说“你要做什么、现在卡在哪里”。描述问题就好,不用贴客户、同事或公司的敏感数据。
样例为自制教学数据。函数行为按官方文档核对,示例金额已逐项复算,未进行桌面 Excel 实测。公式中的逗号为英文逗号;使用分号分隔参数的设置需要相应替换。















































































