夜雨聆风学习资料网

ARTICLE · 1240390

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

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

月底了,核查报销表,想先看看还有多少钱没报。

在“报销状态”里只勾选“待报销”,已经报过的记录从表里消失了,可下面那个合计金额,一分钱没少——还是全部的数。

你盯着Excel表:筛选明明生效了,合计怎么没跟着动?是不是自己哪里点错了?

不是你点错了,问题出在求和公式上:筛选只是把记录藏了起来,SUM 还是会把它们一起加进去。

想让合计金额跟着筛选结果变化,可以把 Excel 求和公式改成下面这样:

=SUBTOTAL(109,C2:C6)

这里的 C2:C6 是金额所在的位置,下面用一张小表,把操作走一遍。

先把表准备好

下面这五笔费用演示数据,不是真实报销数据,金额单位为元。

费用项目
报销状态
金额
打车
待报销
120
办公用品
已报销
80
住宿
待报销
240
快递
待报销
60
餐费
已报销
100

在空白工作表中,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。

你不用每次筛选后再改公式。试着在状态筛选里换一下勾选项:

显示哪些记录
SUM的结果
SUBTOTAL的结果
只显示待报销
600
420
只显示已报销
600
180
两种状态全部显示
600
600

上表假设没有手动隐藏整行;这种情况下,用 9 或 109 结果一样。

这样,在 Excel 中筛选数据后,就能看到筛选保留记录的合计。这个办公 Excel 技巧适合需要反复切换条件、查看不同费用合计的表。

用到自己的表里,改哪里

假设你的金额在 D列,第2行到第500行,就写:

=SUBTOTAL(109,D2:D500)

把公式放在这段金额范围以外的单元格中,比如放在数据区下方的 F502,避免汇总结果随明细行一起被筛掉;不要把它放进 D2:D500,否则会把公式自己也算进去,产生循环引用。

再确认两件事:

新增记录有没有超出范围:如果新费用写到了第501行,而公式仍然只到第500行,那笔费用就不会计入。

金额是不是数字:输入“120元”会变成文本,不能按正常金额参与这条公式的加总,金额单元格里输入120,单位另写在表头即可。

还有一点要分清:这条公式合计的是当前显示的金额,如果没有另外手动隐藏行,取消筛选后,它就恢复计算范围内的全部金额。手动隐藏的行仍然不会计入。如果需要始终统计“待报销”,不受页面筛选影响,那是另一种需求,不能直接拿这条公式代替。

下次核对报销、订单或其他费用表时,看到“明明筛过了,合计却没变”,先看一下用的是不是 SUM。

需要合计全部记录,用SUM;需要金额跟着筛选变化,用SUBTOTAL。

你还有哪张表卡住了?

如果你也经常要整理报销、订单或工作报表,可以关注「哟喂软件」。这里会把具体的办公问题拆开讲,尽量让你看完就能照着做。

你做表时最常卡在哪一步:公式看不懂、筛选后金额对不上,还是每个月都要重复整理?欢迎在留言区说说“你要做什么、现在卡在哪里”。描述问题就好,不用贴客户、同事或公司的敏感数据。


样例为自制教学数据。函数行为按官方文档核对,示例金额已逐项复算,未进行桌面 Excel 实测。公式中的逗号为英文逗号;使用分号分隔参数的设置需要相应替换。

相关学习资料