1、Excel中的筛选,是一个很常用的功能。但不知道是有意还是疏忽,Excel没有直接提供在筛选后的一些统计功能,例如求和、平均值等。而由于筛选的主要功能之一就是可以方便快捷的进行变换,所普通的以直接在数据最下面一行进行求和无法实现,计算值也是不准确的。
表1:输入一个简单的图表,共10项三个分类,最下面一行合计。
表2:进行筛选,并在名称项中选中“非诚勿扰”和“合计”两个选项。这时候的合计(980)仍然是表1中10项的合计,而不是表面看起来非诚勿扰的单项合计(420)。
表三:这时候,就需要使用subtotal函数,在C13的单元格输入公式:=SUBTOTAL(
2、109,$C$2:$C$11)
表4:这时候再进行筛选,在名称项中选中“非诚勿扰”选项,既可以得出得出正确的结果。
表5:除了求和以外,使用subtotal函数还可以进行计数、最小值、最大值、计算平均值等统计功能。但对于同时进行多项分类统计的时候,需要在筛选的时候,选中相应的名称项。
备注:SUBTOTAL函数
所属类别:数学与三角函数
返回数据清单或数据库中的分类汇总。通常,使用“数据”菜单中的“分类汇总”命令可以容易地创建带有分类汇总的数据清单。一旦创建了分类汇总,就可以通过编辑 SUBTOTAL 函数对该数据清单进行修改。
3、
语法
SUBTOTAL(_num,ref1,ref2,…)
_num 为 数字,指定使用何种函数在数据清单中进行分类汇总计算。
Ref1, ref2, 为要进行分类汇总计算的 区域或引用,可以从1 到 29 个。
说明:
1、SUBTOTAL 函数只适用于垂直区域,而不适用于数据行或水平区域。
2、_num数字的含义:
2.1 101 AVERAGE(平均值)
2.2 102 COUNT (数值计数)
2.3 103 COUNTA (包涵文本计数)
2.4 104 MAX (最大值)
2.5 105 MIN (最小值)
2.6 106 PRODUCT (
4、所有数的积)
2.7 107 STDEV (估算样本的标准偏差,反映了偏离相对于平均值的离散程度)
2.8 108 STDEVP (返回整个样本总体的标准偏差。它反映了样本总体相对于平均值的离散程度)
2.9 109 SUM (求和)
2.10 110 VAR (估算基于给定样本的方差)
2.11 111 VARP(计算基于给定样本总体的方差)
3、如果在 ref1, ref2,… 中已经有其他的分类汇总(嵌套分类汇总),将忽略这些嵌套分类汇总,以避免重复计算。也就是在数据区域中有SUBTOTAL获得的结果将被忽略!
这个功能也适用于那些喜欢使用“小计”的图表。我们知道,存在小计的时候,计算合计是最容易产生重复项的,但使用subtotal函数则没有这个弊端。例如表6,这里的小计和分类汇总都使用了subtotal函数,明显没有重复计算。
继续对表六使用筛选,在名称中选中“非诚勿扰”和“小计”,得出表7,也是没有重复计算。
4、_num数字可以从1至11,也可以从101至111,两者的区别在于,如果存在手动的隐藏行,前者仍将计算手动隐藏行的数值,而后者将忽略手动隐藏行的数值。但对于筛选后自动隐藏的那些数值,两者都将忽略。