SUBTOTAL函数可实现动态分类统计:一、筛选后自动汇总可见单元格;二、结合分类汇总生成多级小计与总计;三、配合OFFSET、MATCH实现无筛选条件汇总。

如果您在Excel中需要对数据按特定条件进行分组并汇总,SUBTOTAL函数可以实现动态分类统计。以下是利用SUBTOTAL函数完成分类统计的具体操作方法:
一、启用筛选后使用SUBTOTAL进行可见单元格汇总
SUBTOTAL函数在数据已通过自动筛选或高级筛选划分出不同类别的前提下,可自动忽略被隐藏的行,仅对当前筛选结果中的可见单元格执行汇总计算。
1、选中包含标题的数据区域,按Ctrl+T创建为表格,或点击【数据】→【筛选】启用自动筛选功能。
2、点击任意列标题旁的下拉箭头,选择某一分类条件(如“部门=销售部”),此时其他行被隐藏。
3、在空白单元格中输入公式:=SUBTOTAL(9, D2:D100),其中9代表SUM,D2:D100为数值列区域。
4、该结果即为当前筛选条件下D列数值的合计值,切换筛选条件时结果自动更新。
二、结合分类汇总功能嵌套SUBTOTAL实现多级分组
Excel内置的【分类汇总】功能默认使用SUBTOTAL函数生成汇总行,可在同一列中按分组字段插入多层小计与总计,且支持折叠/展开视图。
1、确保数据源已按分组字段(如“产品类别”)升序排序,否则分类汇总结果不准确。
2、选中数据区域任意单元格,点击【数据】→【分类汇总】,在对话框中设置:分类字段选“产品类别”,汇总方式选“求和”,勾选要汇总的数值列(如“销售额”)。
3、确认后,Excel自动在每个分组末尾插入SUBTOTAL公式行,例如:=SUBTOTAL(109, E2:E50),其中109表示忽略隐藏行的SUM。
4、左侧分级显示符号可点击展开或收起各组明细,汇总行始终保持可见并动态响应行隐藏状态。
三、手动构建SUBTOTAL+OFFSET+MATCH组合公式实现无筛选分类统计
当无法启用筛选或需在非连续区域实现按条件提取并汇总时,可通过SUBTOTAL配合OFFSET与MATCH构造数组式动态引用,避开隐藏行干扰。
1、在辅助列(如F列)中输入公式判断是否属于目标类别:=IF(B2="办公用品",1,0),B列为分类字段。
2、在统计单元格中输入数组公式(按Ctrl+Shift+Enter):=SUMPRODUCT(SUBTOTAL(109,OFFSET(D2:D100,ROW(D2:D100)-ROW(D2),0,1)),--(B2:B100="办公用品"))。
3、该公式先用OFFSET逐行生成单单元格引用,再由SUBTOTAL(109,...)逐一判断是否可见并返回对应值,最后与条件匹配后求和。
4、更改条件文本(如将“办公用品”替换为“电子产品”)即可快速切换统计类别,无需调整筛选状态。










