对excel表格中的筛选结果进行统计分析

这周用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函数参数表

虽然SUBTOTAL函数仅包括上述的11种功能,但对于一般的统计完全够用了。

SUBTOTAL函数的结果会根据不同的筛选而改变。

例如:仍使用上述实例表格,统计“研发组”计划需完成的任务总数,函数表达式为:=SUBTOTAL(9,E3:E24)

用SUBTOTAL对表格进行分类统计_未筛选

对数据进行筛选后,结果如下:

用SUBTOTAL对表格进行分类统计_已筛选

我们可以看见,在没有更改公式的情况下,不同的筛选条件显示了不同的结果。这样便实现了对不同筛选条件的统计,而不需要一直不断地对公式进行修改,大大减少了工作量。

 

二零一三年二月二日 顾毅写于福清