在Excel函数中,有一个函数既能求和、求平均值、还能计数、求最值等多种功能,其实这个函数就是Subtotal,其功能真是“以一敌十”,今天我们讨论其最经典的5种用法。

Subtotal函数主要作用就是在自定的区域中按照功能代码的要求进行分类统计。

作用:返回一个数据列表或数据库的分类汇总。

语法:=Subtotal(功能代码,数值区域)。

常见的功能代码有:

subtotal函数第1参数的设置说明.jpg

一、计算总销量。

方法:

在目标单元格中输入公式:=SUBTOTAL(109,D3:D9)。

subtotal函数第1参数代码109仅对可见单元格有效.jpg

subtotal函数第1参数代码109仅对可见单元格有效.jpg

解读:

1、功能代码9或109对应的都是Sum函数,即求和。但代码109仅对可见单元格有效。所以当隐藏/取消隐藏时,求和结果也跟着发生变化。

2、如果配合筛选功能更能体现其强大的功能。

二、对筛选或隐藏后的数据进行快速计算平均值。

方法:

在目标单元格中输入公式:=SUBTOTAL(1,D3:D9)、=SUBTOTAL(101,D3:D9)。

subtotal函数第1参数代码1和101对数据进行快速计算平均值.jpg

subtotal函数第1参数代码1和101对筛选的数据进行快速计算平均值.jpg

subtotal函数第1参数代码1和101对筛选和隐藏后的数据进行快速计算平均值.jpg

subtotal函数第1参数代码1和101对筛选和隐藏后的数据进行快速计算平均值.jpg

解读:

1、从示例中可以明确的得出,1-11和101-111中,对应代码在筛选中的作用是相同的。

2、1-11包含手动隐藏的值;101-111以可见单元格为统计对象。

三、保持序号(No)的连续性。

有时出于某种需要,会在表格中添加一列序号,但是当对行执行删除,隐藏、筛选后,就会破坏序号的连续性,可以借助subtotal函数保证序号的连续性。

方法:

在目标单元格A3中输入公式:=SUBTOTAL(103,B$2:B2),然后复制公式。

解读:

保持序号(No)的连续性,其实就是统计当前单元格之前的非空单元格数。

最好这样写:=SUBTOTAL(103,B$2:B2)*1。不加“*1”,无论筛选什么,数据表的最后一行都会始终显示在表中,这是因为只使用subtotal函数汇总,excel会把最后一行当作表格的汇总行,始终显示在表格的末尾。让公式“*1”的目的,就是为了让单元格中的序号不是subtotal函数直接计算的结果,让excel把最后一行当成普通的数据记录,从而不用始终显示在表格的末尾。