(一)SUBTOTAL 函数
一、基本语法:SUBTOTAL(function_num,ref1,ref2, ...)
Function_num 必需。 数字 1-11 或 101-111,用于指定要为分类汇总使用的函数。 如果使用 1-11,将包括手动隐藏的行,如果使用 101-111,则排除手动隐藏的行;始终排除已筛选掉的单元格。
Ref1必需。要对其进行分类汇总计算的第一个命名区域或引用。
Ref2,...可选。要对其进行分类汇总计算的第 2 个至第 254 个命名区域或引用。
Function_num (包含隐藏值)为1到11之间的自然数,用来指定分类汇总计算使用的函数。
注:其中参数3和参数9是我们最常用的。
二、处理隐藏值
1. 例:
同样都是对B2:B8区域求和,其中公式 =SUBTOTAL(9,B2:B8)将隐藏值B4也进行了求和,而公式=SUBTOTAL(109,B2:B8)并没有对隐藏值B4进行求和。
此函数是Excel中唯一一个能统计用户可见单元格的函数,所以在需要处理隐藏数据相关的应用时,SUBTOTAL是其它函数无法代替的,也是SUBTOTAL最大最重要的特点。
三、与Sum函数的区别
SUBTOTAL:只对筛选数据结果数据进行求和;SUM:不受筛选结果影响,会对所有数据进行求和
例: 我们对数据进行了筛选,公式 =SUBTOTAL(9,B2:B8)的结果是250,它并没有将筛选后没有显示出来的数据进行求和 ,而公式 =SUM(B2:B8),它对B2:B8这个区域都进行了求和,筛选后没有显示的数据也进行了计算。
四、Subtotal计数
参数2-COUNT,返回包含数字以及包含参数列表中的数字的单元格的个数;
参数3-COUNTA,返回参数列表中非空值的单元格个数。
例:
我们B5单元格为文本型数据,用 公式=SUBTOTAL(2,B2:B8),不统计B5单元格;用 公式 =SUBTOTAL(3,B2:B8),B5单元格也有统计进去。
五、筛选后填充
如果Excel工作表包含序号列,在进行自动筛选后,由于某些行被隐藏,序号会变得不连续。要让筛选后的序号还是从“1”开始的连续数字,可以用公式 =SUBTOTAL(3,$B$2:B2)自动生成序号。
可是当我们对BCD产品进行筛选后发现原来筛选前的数据出现在最后一行了,为什么呢?原来我们的subtotal函数会默认把最后一行当做汇总行。我们只需要在原来公式后面*1,公式变成=SUBTOTAL(3,$B$2:B2)*1,就不会出现这种情况了。
六、避开同类计算
我们的小计行应用了subtotal函数,我们在总计行输入公式 =SUBTOTAL(9,B2:B9)时,会自动避开小计所计算的值。