excel里统计筛选后的可见数据,用subtotal比普通的sum、count靠谱多了。最常用的写法就是在合计单元格输入 =subtotal(109,b2:b15),这里的 109 意思是“求和,同时忽略筛选隐藏和手动隐藏的行”。当前操作软件:microsoft excel;软件版本:microsoft 365。
这个函数特别适合统计销售明细、库存清单、考勤表、费用报销表的可见行数据。筛选条件改了,结果会自动跟着更新,要是用普通 SUM,那些被筛选藏起来的行很容易被误算进去。
第一步:准备要统计的明细表
先把数据整理成一行表头、多行明细的结构,销售额、数量、金额这类字段要确保是数字格式。这次示例统计的是 B 列“销售额”,所以后面的引用区域写的是 B2:B15,红框圈出的区域就是 SUBTOTAL 会跟着筛选自动更新的明细表。

第二步:输入 SUBTOTAL 并选择 109
在合计单元格输入 =SUBTOTAL( 之后,Excel 会自动弹出 function_num 选项列表。要统计可见行合计,直接输 109 就行,也可以在列表里选 109 - SUM。千万别选 9 - SUM,9 只会忽略筛选隐藏的行,手动藏起来的行还是会被算进去。

第三步:补上引用区域
输个逗号之后直接框选要统计的单元格区域,完整公式就是 =SUBTOTAL(109,B2:B15)。要是刚学想练手,拿几行数字试也行,比如写 =SUBTOTAL(109,A1:A3),核对下结果是不是等于当前所有可见数字的总和。

第四步:切换筛选条件查看结果
公式输完之后,你可以随便切换“地区”“季度”这些字段的筛选条件试试。示例里只保留“第4季”记录时,合计结果会变成 28886,说明公式确实只统计当前显示出来的行。等你取消所有筛选条件,合计数又会变回完整明细的总额。

SUBTOTAL 语法怎么拆
完整语法是 =SUBTOTAL(function_num,ref1,[ref2],...)。第一个参数定统计规则,后面的参数填要统计的区域。它支持同时选多个区域,比如 =SUBTOTAL(109,B2:B15,D2:D15),不过实际干活的时候更建议把同类型数据放在同一列,后续筛选、维护都更清楚。
| 参数 | 写法示例 | 作用 |
|---|---|---|
function_num |
109 |
指定统计类型。1-11 和 101-111 都可用,101-111 会额外忽略手动隐藏行。 |
ref1 |
B2:B15 |
第一个统计区域,可以是一列、一行或一块连续区域。 |
[ref2] |
D2:D15 |
可选的第二个统计区域,后面还可以继续添加区域。 |
常用编号怎么选
SUBTOTAL 的可用编号不止 109。要统计可见行数量、平均值、最大值这类数据,直接替换第一个参数就行。
| 需求 | 包含手动隐藏行 | 忽略手动隐藏行 | 示例公式 |
|---|---|---|---|
| 平均值 | 1 |
101 |
=SUBTOTAL(101,B2:B15) |
| 计数,含数字 | 2 |
102 |
=SUBTOTAL(102,B2:B15) |
| 计数,非空单元格 | 3 |
103 |
=SUBTOTAL(103,A2:A15) |
| 最大值 | 4 |
104 |
=SUBTOTAL(104,B2:B15) |
| 最小值 | 5 |
105 |
=SUBTOTAL(105,B2:B15) |
| 求和 | 9 |
109 |
=SUBTOTAL(109,B2:B15) |
日常用优先记 101、102、103、109 这几个编号就够了。筛选表经常会有手动隐藏的行,用 100 开头的编号基本不会出现“明明藏起来了结果还被统计”的问题。要是你用的 WPS 或者旧版 Excel,先确认下软件是否支持这个函数。
容易出错的地方
第一类常见错误是数字存成了文本格式。要是金额列左上角飘着绿色小三角,或者求和结果明显偏小,可以先用“分列”“选择性粘贴乘以 1”或者自带的“错误检查”功能,把文本格式的数字转成普通数值。
第二类错误是引用区域没选全。比如公式只写到 B2:B10,之后你新增了几行数据,SUBTOTAL 不会自动把新行算进去。把数据转换成表格后用结构化引用,比如 =SUBTOTAL(109,表1[销售额]),后续新增行就能自动被纳入统计。
第三类错误是把汇总行也选进了统计区域。比如合计公式在 B17,却把区域写成 B2:B17,就会触发循环引用或者结果异常。合计单元格一定要放在统计区域外面。
扩展示例:一张表里同时看数量和金额
销售表既要看可见订单数,又要看可见销售额时,直接在两个合计单元格分别写这两个公式就行:
=SUBTOTAL(103,A2:A15)
=SUBTOTAL(109,B2:B15)
前一个公式统计所有可见的非空姓名记录,算出来就是当前显示的订单总个数,后一个统计可见销售额。筛选某个地区、季度或者人员之后,两个结果会同步更新,这也是 SUBTOTAL 适合放在筛选表顶部或底部的原因。


















