Excel中的筛选,是一个很常用的功能。但不知道是有意还是疏忽,Excel没有直接提供在筛选后的一些统计功能,例如求和、平均值等。而由于筛选的主要功能之一就是可以方便快捷的进行变换,所普通的以直接在数据最下面一行进行求和无法实现,计算值也是不准确的。
表1:输入一个简单的图表,共10项三个分类,最下面一行合计。
表2:进行筛选,并在名称项中选中“非诚勿扰”和“合计”两个选项。这时候的合计(980)仍然是表1中10项的合计,而不是表面看起来非诚勿扰的单项合计(420)。
表三:这时候,就需要使用subtotal函数,在C13的单元格输入公式:
=SUBTOTAL(109,$C$2:$C$11)
表4:这时候再进行筛选,在名称项中选中“非诚勿扰”选项,既可以得出得出正确的结果。
表5:除了求和以外,使用subtotal函数还可以进行计数、最小值、最大值、计算平均值等统计功能。但对于同时进行多项分类统计的时候,需要在筛选的时候,选中相应的名称项。
备注:SUBTOTAL函数
所属类别:数学与三角函数
返回数据清单或数据库中的分类汇总。通常,使用“数据”菜单中的“分类汇总”命令可以容易地创建带有分类汇总的数据清单。一旦创建了分类汇总,就可以通过编辑 SUBTOTAL 函数对该数据清单进行修改。
语法
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 (所有数的积)
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,两者的区别在于,如果存在手动的隐藏行,前者仍将计算手动隐藏行的数值,而后者将忽略手动隐藏行的数值。但对于筛选后自动隐藏的那些数值,两者都将忽略。
Excel中的筛选,是一个很常用的功能。但不知道是有意还是疏忽,Excel没有直接提供在筛选后的一些统计功能,例如求和、平均值等。而由于筛选的主要功能之一就是可以方便快捷的进行变换,所普通的以直接在数据最下面一行进行求和无法实现,计算值也是不准确的。
表1:输入一个简单的图表,共10项三个分类,最下面一行合计。
表2:进行筛选,并在名称项中选中“非诚勿扰”和“合计”两个选项。这时候的合计(980)仍然是表1中10项的合计,而不是表面看起来非诚勿扰的单项合计(420)。
表三:这时候,就需要使用subtotal函数,在C13的单元格输入公式:
=SUBTOTAL(109,$C$2:$C$11)
表4:这时候再进行筛选,在名称项中选中“非诚勿扰”选项,既可以得出得出正确的结果。
表5:除了求和以外,使用subtotal函数还可以进行计数、最小值、最大值、计算平均值等统计功能。但对于同时进行多项分类统计的时候,需要在筛选的时候,选中相应的名称项。
备注:SUBTOTAL函数
所属类别:数学与三角函数
返回数据清单或数据库中的分类汇总。通常,使用“数据”菜单中的“分类汇总”命令可以容易地创建带有分类汇总的数据清单。一旦创建了分类汇总,就可以通过编辑 SUBTOTAL 函数对该数据清单进行修改。
语法
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 (所有数的积)
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,两者的区别在于,如果存在手动的隐藏行,前者仍将计算手动隐藏行的数值,而后者将忽略手动隐藏行的数值。但对于筛选后自动隐藏的那些数值,两者都将忽略。