在Excel里有个神奇的函数:SUBTOTAL。据说这个函数从Excel2003就存在了,可是现在都2022了,还 有很多人不了解他的妙用,今天就和大家再来认识一下SUBTOTAL函数。 妙用1:对筛选数据求和 可以看到,公式=SUBTOTAL(9,D2:D22)可以按照筛选的结果实现动态求和。 但是请注意,这个公式只对筛选有效,如果要排除隐藏数据则需要对公式进行修改。 妙用2:忽略隐藏数据求和 将公式改成=SUBTOTAL(109,D2:D22),就能忽略隐藏行的数据求和。 这个公式同时也对筛选有效,这就是SUBTOTAL函数第一参数的神奇之处。 可以这样说,这个函数的秘密全部都在第一参数,第二参数只是选择要进行统计的数据区域,并没什么特殊的。 至于第一参数都有些什么秘密,可以参照下面这个图片。 注意功能参数代码的区别,只是包含或者忽略隐藏行,对于筛选行都是有效的。 计算方式则体现了这个函数的多功能特性,前面两个示例中用到了9和109,都是同样的计算方式求和。 另外几个比较常用的统计方式例如:平均值、最大值、最小值等等,只需要改成对应的代码即可。 妙用3:对筛选后的数据求最大值。 =SUBTOTAL(4,D2:D22) 通过上述示例,发现一个问题,A列的序号经过筛选以后变得不连续了,怎么办呢? 正好可以使用SUBTOTAL来得到一个动态连续序号的效果。 妙用4:筛选后的连续序号 公式为=SUBTOTAL(3,$B$1:B2)-1 在这个例子中,数据区域的用法是有点小技巧的,锁定了区域的开始位置,但是结束位置则是会随着公 式下拉发生变化,这样就实现了区域递增的目的。 细心的同学可能会有个疑问,公式用=SUBTOTAL(3,$B$2:B2)不就行了吗,为什么非要从第一行开始, 然后再减一,是不是多此一举。行不行试试便知。 通过测试可以看到,不管筛选条件是什么,最后都有一行是一直出现的,序号虽然连续了,但是多出 来一行数据也不行啊。 为什么会出现这种情况? 还是要从SUBTOTAL函数本身的特殊性来解释,这个函数也叫分类汇总函数,通常情况下总是会将最 后一行默认是汇总行,所以不受筛选的影响一直都显示。 如果不想出现这种默认汇总行的话,则需要在函数后面添加一个计算,加减乘除都可以。 最后一个动画的公式改成=SUBTOTAL(3,$B$2:B2)*1实际上也是可以的,有兴趣的同学可以自己测 试一下。 好啦,以上就是今天的所有内容,感谢你的收看。 |