对excel表格中的筛选结果进行统计分析
- 有理取闹·鼓捣电脑
- 2013-02-02
- 457热度
- 1评论
这周用excel做了一个报表,需要对中间满足某些字段的单元格进行求和。直接的想法是使用SUMIF函数。
SUMIF函数的语法如下:
SUMIF(range,criteria,sum_range)
其中,range表示条件单元格区域,即用于判断的单元格;criteria表示判断条件;sum_range表示用于数据相加的单元格区域。也就是说,range区域内的单元格只要满足criteria条件,sum_range区域中对应的行就相加。
例如有如下图所示的一张数据表:
现在要统计“研发组”总共计划完成的任务数,统计公式就是:
=SUMIF(A3:A24,"=研发组",E3:E24)
结果为45。
此时如果要对某一组员实际完成的任务进行统计,则需要修改公式为:
=SUMIF(B3:B24,"=%name%",E3:E24)
其中,%name%为某一成员的姓名。
由此可知,SUMIF函数可以很精确的对符合要求的单元格进行求和。但是问题是,如果条件改变,函数表达式也必须改变。如果需要处理的分类有很多种,工作了仍然很大。
查阅excel帮助文件,发现有另一个方法可以实现这个功能。这就是使用“筛选”功能并用SUBTOTAL函数实现统计。
excel筛选的原理是仅显示满足条件的行,而隐藏不满足条件的行(仅仅是隐藏,而不对数据进行删除操作)。恰好,SUBTOTAL函数可以选择在进行统计时,是否考虑隐藏数据。
SUBTOTAL函数的语法如下:
SUBTOTAL(function_num, ref1, ref2, ...)
其中,function_num表示要实现的功能编号;ref1,ref2等表示需要统计的单元格区域。
function_num对于的功能如下表所示:
虽然SUBTOTAL函数仅包括上述的11种功能,但对于一般的统计完全够用了。
SUBTOTAL函数的结果会根据不同的筛选而改变。
例如:仍使用上述实例表格,统计“研发组”计划需完成的任务总数,函数表达式为:=SUBTOTAL(9,E3:E24)
对数据进行筛选后,结果如下:
我们可以看见,在没有更改公式的情况下,不同的筛选条件显示了不同的结果。这样便实现了对不同筛选条件的统计,而不需要一直不断地对公式进行修改,大大减少了工作量。
二零一三年二月二日 顾毅写于福清
技术大拿啊,膜拜+学习!