六大典型用法介绍 subtotal函数的使用方法

SUBTOTAL函数主要用于筛选和隐藏后的数据统计 。本文主要以使用SUBTOTAL函数进行计数(即function_num为3、103)和求和(即function_num为9、109)为例 , 讲解SUBTOTAL函数的用法 。

六大典型用法介绍 subtotal函数的使用方法

文章插图
SUBTOTAL函数主要用于筛选和隐藏后的数据统计 , 其语法为
SUBTOTAL(function_num , ref1 , …) , 其中参数function_num用于指定要为分类汇总使用的函数 , 如求和、计数、求平均值等 。
function_num参数值的具体含义如下表所示:
当function_num取1~11时 , SUBTOTAL函数对筛选后的数据进行统计 , 包括手工隐藏的数据 。当function_num取101~111时 , SUBTOTAL函数对可见的数据进行统计 , 忽略筛选掉的数据和手工隐藏的数据 。无论function_num取1~11还是101~111 , SUBTOTAL函数均不统计筛选掉的数据 , 两个参数范围的区别在于是否统计手工隐藏的数据 。
本文主要以使用SUBTOTAL函数进行计数(即function_num为3、103)和求和(即function_num为9、109)为例 , 讲解SUBTOTAL函数的用法 。
一、筛选后计数
如下图所示 , A1:C11为各业务员销售额 。要求计算筛选出的人数 。
在F1单元格输入公式:=SUBTOTAL(3 , $A$2:$A$11)
如下图所示 , 当未筛选数据时 , SUBTOTAL函数返回值为“10” 。
当筛选出“销售1部”的数据时 , SUBTOTAL函数返回值为“4” 。
二、筛选后求和
如下图所示 , 在F1单元格输入公式:=SUBTOTAL(9 , $C$2:$C$11)
当未筛选数据时 , SUBTOTAL函数返回值为“550” 。
当筛选出“销售1部”数据时 , SUBTOTAL函数返回值为“220” 。
三、隐藏后计数
如下图所示 , 在F1单元格输入公式:=SUBTOTAL(103 , $A$2:$A$11)
此时所有数据均未隐藏 , SUBTOTAL函数返回值为“10” 。
当隐藏第2、3行数据后 , SUBTOTAL函数返回值为“8” , 如下图所示 。
四、隐藏后求和
如下图所示 , 在F1单元格输入公式:=SUBTOTAL(109 , $C$2:$C$11)
此时所有数据均未隐藏 , SUBTOTAL函数返回值为“550” 。
当隐藏第2、3行数据后 , SUBTOTAL函数返回值为“520” 。
五、生成筛选后仍连续的序号
如下图所示 , 在A2单元格输入公式:=SUBTOTAL(103 , $B$2:B2)*1
拖动填充柄向下复制公式 , 在A2:A11生成连续序号 。
当筛选出“销售1部”时 , 序号仍保持连续 , 如下图所示:
六、对筛选后的数据进行条件计数
如下图所示 , 在C14单元格输入公式:
=SUMPRODUCT(($B$2:$B$11=B15)*(SUBTOTAL(2 , OFFSET($C$2 , ROW($C$2:$C$11)-2 , 0))))
【六大典型用法介绍 subtotal函数的使用方法】拖动填充柄将公式向下复制至C16单元格 。
当未筛选数据时 , SUBTOTAL函数返回的是各部门的员工人数 。
当筛选出“销售额>=50”的数据时 , SUBTOTAL函数返回的是各部门销售额不低于50的员工人数 , 如下图所示:
本例中 , 使用OFFSET函数作为SUBTOTAL函数ref1参数 , 确定C2:C11单元格是否被筛选出 。使用公式($B$2:$B$11=B15)判断是否为B15单元格的部门(即“销售1部”) 。使用SUMPRODUCT函数计算满足条件的单元格个数 。