SUBTOTAL函数:统计筛选出的数据,就用它

最近推送的五篇文章:

·  正  ·  文  ·  来  ·  啦  ·

释义

subtotal

英 ['sʌbtəʊt(ə)l]  美 ['sʌbtotl]

  • n. 小计;部分合计数

  • vt. 小计;求…的部分和

  • vi. 求部分和

在工作中,我们要统计求和就用SUM、要统计个数用COUTA、求平均值用AVERAGE,这些函数都是对指定的单元格区域进行求和、计数、求平均值。但是有些时候,我们对一个表格进行筛选操作,然后仅仅对筛选后的行进行求和、计数、求平均值等等。这时候,SUM、COUTA、AVERAGE这些函数就无能为力了,因为它们会对指定区域内所有的单元格进行计算,不管它有没有被筛选。

这时就是SUBTOTAL函数大显身手的时候了,它就是专门用于对筛选出的数据进行求和/计数/求平均值/求最大值/最大值等等。

一、基本用法

此函数的作用就是筛选出的数据进行求和、计数、求平均值....。其语法格式:

=SUBTOTAL(功能参数,单元格区域)

第一个参数为9时,该函数对第二参数的区域进行求和;为1时,对第二参数的单元格区域求平均值。

示例:对筛选出的一2班人员计算其平均分。

如果用公式“=AVERAGE(表1[语文])”,就是统计所有人员“语文”列的平均分,而不只是对筛选出的人求平均。

SUBTOTAL函数第一参数有二种模式,其分别的作用如下:

上图中两种模式的区别如下:

1、当表中没有任何数据被筛选掉或手动隐藏时,两种模式的计算结果一样

2、如果将某行手动隐藏,“模式101”(忽略隐藏值)计算时不会包含手动隐藏的行。“模式1”(包含隐藏值)还是会将手工隐藏的行计算在内。

比如,将上图中的第7行“罗威皓”那一行点击右键隐藏,两者的计算结果如下:

注意:

如果在上面手工隐藏了第7行的基础上,我们再筛选掉部分记录,比如,筛选掉“赵学海”,那么两种计算模式的结果还是一样的,只会统计可见记录的值,都不会包含筛选掉的和手动隐藏的行

拓展应用
如何设置永远连续的序号?
在A2单元格输入下面的公式,注意第二参数单元格的引用类型,起始单元格要使用绝对引用:
=SUBTOTAL(3,$B$2:B2)

特别提醒:

如果后面没有汇总行,上面的公式会有点小问题,会始终筛选出最后一行。大家看一下上图的第17行就可发现,它的颜色不是蓝色的,和下面行的行号颜色一样,会始终显示。

为了更直接的还原上面的小Bug,我们按下面步骤操作,将其转为普通的表格再筛选:

选中上面的【表格】任一单元格,点击 右键,表格--转换为区域,然后再点击“数据”选项卡的自动筛选。

筛选一1班时,会将第16行也显示出来,如下图:

这是为什么呢?

我们从SUBTOTAL的字面含义也知道,它是计算小计的,也就是说,Excel误将最后一行的SUBTOTAL当做小计汇总了。

那怎么办呢?

方法1:欺骗它

在公式后+0,让它以为这是一个复杂的公式,而不是一个简单的小计公式

方法2:愚弄它!

在最后一行的下一行任一单元格键入空格或任意字符,然后再筛选。

扩展用法
Subtotal函数除了能忽略掉被筛选掉的行,还会忽略掉单元格区域中含有Subtotal、以及Aggregate函数的单元格。
比如下图中第6行、第11行、第17行中的小计是用SUBTOTAL来计算小计的,那么在第18行计算总计时,就可用下面的公式:
=SUBTOTAL(9,D3:D17)
这个公式会自动忽略掉第二参数区域中的那些小计单元格。
我们可以利用这个特殊作用来批量向下求和,下面是即将在年底出版上市的《偷懒的技术2》里面的一个案例:
=SUBTOTAL(9,E3:E$16)*2-SUM(E3:E$16)
注:
要注意上面公式中单元格的引用类型。在前面计算连续序列的公式中起始单元格行号锁定了,本公式是结束单元格的行号是锁定了的。

上面的文章读得不过瘾?那就再看看“Excel偷懒的技术”公众号函数讲解系列的其他文章

相关链接

1、【扩展】使用VLOOKUP函数的常见错误及解决方法

2、【扩展】新手进阶必学的三个函数①:LOOKUP

3、深入理解LOOKUP:LOOKUP函数的查找原理

4、【扩展】新手进阶必学的三个函数②:AGGREGATE

5、【扩展】新手进阶必学的三个函数③:最佳劳模SUMPRODUCT函数,这篇必须收藏!


(0)

相关推荐