subtotal 是 Excel 里面专门针对分类汇总场景的函数,最大特点是可以自动忽略筛选之后隐藏的行,同时还能跳过已经做过分组汇总的小计行,避免重复求和,普通 sum 函数在筛选之后依然会统计全部单元格,这也是 subtotal 最核心的优势,基础语法是 subtotal 功能代码 数据区域,第一个参数是功能编号,用来指定要执行求和计数平均值等运算,第二个参数是需要计算的单元格范围,是财务报表分类汇总最常用的函数,也是 Excel 考试高频考点。
基础语法
SUBTOTAL(function_num, ref1, [ref2], ...)
| 参数 | 说明 |
|---|---|
| function_num | 功能代码,1 到 11 包含手动隐藏行,101 到 111 忽略手动隐藏行 |
| ref1 | 第一个计算区域 |
| ref2 | 可选,追加计算区域,最多支持 254 个区域 |
功能代码对照表
| 代码 | 对应函数 | 代码 | 对应函数 |
|---|---|---|---|
| 1 | AVERAGE 平均值 | 101 | AVERAGE 忽略隐藏行 |
| 2 | COUNT 数字计数 | 102 | COUNT 忽略隐藏行 |
| 3 | COUNTA 非空计数 | 103 | COUNTA 忽略隐藏行 |
| 4 | MAX 最大值 | 104 | MAX 忽略隐藏行 |
| 5 | MIN 最小值 | 105 | MIN 忽略隐藏行 |
| 6 | PRODUCT 乘积 | 106 | PRODUCT 忽略隐藏行 |
| 9 | SUM 求和 | 109 | SUM 忽略隐藏行 |
核心规则说明
1 代码 1 到 11,会统计手动隐藏的行,也就是手动隐藏的数据依然参与计算
2 代码 101 到 111,会跳过手动隐藏行,只计算筛选显示出来的数据,日常筛选统计优先使用 109 求和
3 自动筛选产生的隐藏行,不管是 1 到 11 还是 101 到 111,都会自动排除,两种代码在自动筛选场景效果一致
4 如果原区域里面本身已经含有 subtotal 生成的小计行,函数会自动识别,不再重复累加小计,防止二次重复计算
5 支持多区域计算,适合跨不连续单元格做汇总
基础示例
=SUBTOTAL (109,A2:A20)
含义是对 A2 到 A20 区域求和,并且忽略手动隐藏的行,筛选之后只会统计可见单元格。
操作步骤
第一步 确定需要实现的运算,比如求和就选择代码 109
第二步 输入函数,填写功能代码
第三步 选中需要计算的数据区域
第四步 回车得到结果
第五步 执行筛选,观察数值会自动更新,验证只统计可见行
第六步 如果是分类汇总,Excel 自动生成分类汇总的时候,会自动写入 subtotal 函数,不需要手动编写
易错提醒
不要混淆 9 和 109,9 会包含手动隐藏行,109 会排除手动隐藏行
subtotal 不能跨工作表直接引用,跨表需要搭配其他函数
插入新行的时候,如果新行落在原计算区域内,subtotal 会自动纳入统计
相关 FAQ
问题 1 subtotal 函数的使用方法里面,109 和 9 有什么区别
回答 1 subtotal 函数的使用方法里面,9 是普通求和包含手动隐藏行,109 求和会忽略手动隐藏行,筛选统计一般选用 109。
问题 2 subtotal 函数的使用方法,会不会重复计算已经存在的小计行
回答 2 subtotal 函数的使用方法,函数可以自动识别区域内已经由 subtotal 生成的小计行,不会重复累加,适合分类汇总报表。
问题 3 subtotal 函数的使用方法,筛选之后数值会自动变化吗
回答 3 subtotal 函数的使用方法,在自动筛选之后,函数会自动重新计算,只统计筛选可见的数据,结果实时更新。
问题 4 subtotal 函数的使用方法,可以计算平均值吗
回答 4 subtotal 函数的使用方法,可以计算平均值,代码填写 1 或者 101,101 版本会忽略手动隐藏行。
免责申明
本内容为 Excel 函数科普,不同 Excel 版本函数行为基本一致,具体以软件实际运行结果为准。


