在使用EXCEL筛选功能时,有个让人非常苦恼的事情,就是筛选出来的数据没有小计,如果用常规的sum函数求和,那些被隐藏的行也被被计算进去,得到的不是小计,而是所有数据的总计。
要实现这个效果,其实非常简单,下面就跟着我一步一步来吧:
一、自动筛选
(1)先在第19行上面插入一个空行:
这样合计行会变成第20行。
为什么要插入空行呢,因为如果没有这个空行,你即使在合计行设置了小计的公式,也会在筛选时被隐藏,所以这个空行是必须的。
(2)选中B1:B18这个区域,然后进行筛选(EXCEL2000/2003版:点击“数据”菜单下的“筛选”、“自动筛选”;EXCEL2007/2010版:依次点击数据标签、筛选按钮),就会只对部门进行自动筛选,而姓名、工资那些列都不会自动筛选:
(3)隐藏刚才插入的空白行,第19行,这时可以发现,不管怎么筛选,原先的合计行都不会被隐藏。
二、只对显示的内容求和
从上表可以看到,虽然筛选了人力资源部的数据,但第20行合计却依然是所有人的(包括被筛选后隐藏的),这当然不是我们需要的结果。所以要对C20单元格的公式进行修改:
=SUBTOTAL(109,C2:C18)
subtotal是分类求和函数。
第一个参数109的意思是只对可见区域求和,所以只要是只对可见区域求和就必须是109,要是只对可见区域求统计有数据的单元格个数就是103。
第二个参数是要求求和的区域,这里是C2:C18,就是本表工资列的数据区域。
现在可以发现,只要对部门进行了重新筛选,C20单元格的合计数会自动进行变化。
当然,这时候B20单元格显示的“合计”并不恰当,因为全部显示时才是“合计”,部分显示只能是“小计”,B20单元格设置公式:
=IF(SUBTOTAL(103,B2:B18)=COUNTA(B2:B18),"合计","小计")
示例文档:
http://ishare.iask.sina.com.cn/f/23935011.html
本人制作的EXCEL必备工具箱,欢迎下载:http://blog.sina.com.cn/s/blog_5488e3a901000ayc.html