SUBTOTAL函数
返回列表或数据库中的分类汇总。通常,使用“数据”选项卡上“大纲”组中的“分类汇总”命令更便于创建带有分类汇总的列表。一旦创建了分类汇总,就可以通过编辑SUBTOTAL 函数对该列表进行修改。
语法
SUBTOTAL(function_num,ref1, ref2, …)
Function_num 为 1 到 11(包含隐藏值)或 101 到111(忽略隐藏值)之间的数字,指定使用何种函数在列表中进行分类汇总计算。
Function_num (包含隐藏值) | Function_num (忽略隐藏值) | 函数 |
---|---|---|
1 | 101 | AVERAGE |
2 | 102 | COUNT |
3 | 103 | COUNTA |
4 | 104 | MAX |
5 | 105 | MIN |
6 | 106 | PRODUCT |
7 | 107 | STDEV |
8 | 108 | STDEVP |
9 | 109 | SUM |
10 | 110 | VAR |
11 | 111 | VARP |
Ref1、ref2 为要进行分类汇总计算的 1 到 254 个区域或引用。
实例(1):
如果A1=1、A2=2、A3=3,则公式“=SUBTOTAL(9,A1:A3)”将使用SUM函数对“A1:A3”区域进行分类汇总(求和),其结果为6。
实例(2):而象我们今天所想用到的计算筛选结果行数的功能,则应该使用CnuntA函数,即Function_num应该为3,如下:
假如你的数据第一行是标题,从第二行开始到19行为数据,这样就总共有18行数据,如果你使用条件进行自动筛选后,符合筛选条件结果是8行。
那么,筛选后可在20行输入公式“=SUBTOTAL(3,A2:A19)”这样即可计算出筛选结果的行数为8。
数据量少的时候,当然用不到这样的函数,如果你从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最大最重要的特点。