今天用Excel在进行业务统计时,遇到一个小问题,Google了一下,又学了一招。 一般人都会使用“自动筛选”功能,筛选完成后,会在表格左下角的状态栏中提示“从多少多少条记录中找到了多少多少个结果”。 今天做的表格很复杂,在使用筛选过程中,由于统计的数据量太大,且筛选层次很多,好几层嵌套筛选的,而且还使用了分类汇总功能,结果发现有时左下角就不提示筛选结果了,很苦恼,搜索了一下,发现可以使用subtotal函数来统计筛选后的行数。 SUBTOTAL函数
返回列表或数据库中的分类汇总。通常,使用“数据”选项卡上“大纲”组中的“分类汇总”命令更便于创建带有分类汇总的列表。一旦创建了分类汇总,就可以通过编辑 SUBTOTAL 函数对该列表进行修改。 语法 SUBTOTAL(function_num, ref1, ref2, …) Function_num 为 1 到 11(包含隐藏值)或 101 到 111(忽略隐藏值)之间的数字,指定使用何种函数在列表中进行分类汇总计算。
Ref1、ref2 为要进行分类汇总计算的 1 到 254 个区域或引用。 实例(1):
实例(2):而象我们今天所想用到的计算筛选结果行数的功能,则应该使用CnuntA函数,即Function_num应该为3,如下:
数据量少的时候,当然用不到这样的函数,如果你从1000条数据中进行筛选,筛选出来的结果有好几百条,你根本没有办法数的时候,使用subtotal函数就可以快速的统计出筛选出来的结果有多少行了。 说明 如果在 ref1, ref2,… 中有其他的分类汇总(嵌套分类汇总),将忽略这些嵌套分类汇总,以避免重复计算。 当 function_num 为从 1 到 11 的常数时,SUBTOTAL 函数将包括通过“隐藏行”命令所隐藏的行中的值,该命令位于“工作表”选项卡上“单元格”组中“格式”命令的“隐藏和取消隐藏”子菜单下面。当您要对列表中的隐藏和非隐藏数字进行分类汇总时,请使用这些常数。当 function_num 为从 101 到 111 的常数时,SUBTOTAL 函数将忽略通过“隐藏行”命令所隐藏的行中的值。当您只对列表中的非隐藏数字进行分类汇总时,请使用这些常数。 SUBTOTAL 函数忽略任何不包括在筛选结果中的行,不论使用什么 function_num 值。 SUBTOTAL 函数适用于数据列或垂直区域,不适用于数据行或水平区域。例如,当 function_num 大于或等于 101 时需要分类汇总某个水平区域时,例如 SUBTOTAL(109,B2:G2),则隐藏某一列不影响分类汇总。但是隐藏分类汇总的垂直区域中的某一行就会对其产生影响。 如果所指定的某一引用为三维引用,函数 SUBTOTAL 将返回错误值 #VALUE!。 在需要处理隐藏数据相关的应用时,SUBTOTAL是其它函数无法代替的,也是SUBTOTAL最大最重要的特点 |