SUBTOTAL函数是Excel中一个非常实用的函数,主要用于对指定范围内的数据进行聚合计算,并且在计算过程中忽略被隐藏、被筛选或包含错误值的单元格。SUBTOTAL函数的一般语法如下:

```
SUBTOTAL(function_num,ref1, [ref2], ...)
```
其中,`function_num`是指要应用的计算函数的编号,它是一个1-11之间的整数。而`ref1`和`ref2`则是需要计算的数据范围或单元格引用。为了便于理解SUBTOTAL函数,下面分别介绍它的各个参数和用法。

1. function_num 参数
`function_num`参数指定要应用的聚合计算函数的编号。它有11个不同的值,每个值对应一种不同的计算函数,具体如下:
| 函数编号 | 名称 | 对应的计算函数 |
| :------- | :----------- | :------------- |
| 1 | AVERAGE | 平均值 |
| 2 | COUT | 计算个数 |
| 3 | COUNTA | 计算非空值个数 |
| 4 | MAX | 最大值 |
| 5 | MIN | 最小值 |
| 6 | PRODUCT | 乘积 |
| 7 | STDEV | 样本标准差 |
| 8 | STDEVP | 总体标准差 |
| 9 | SUM | 总和 |
| 10 | VAR | 样本方差 |
| 11 | VARP | 总体方差 |
可以看出,不同的函数编号对应着不同的计算函数,例如函数编号9对应的计算函数是SUM(求总和),编号3对应的计算函数是COUNTA(计算非空值个数)。
需要注意的是,当第一个参数为1-11的其中一个值时,SUBTOTAL函数将自动忽略被隐藏或筛选的行。而当第一个参数为101-111的其中一个值时,SUBTOTAL函数将包含被隐藏或筛选的行。因此,在需要排除隐藏行或筛选行的情况下,需要使用函数编号相应的101-111值来进行计算。

2. ref1、ref2 参数
`ref1`、`ref2`参数表示要计算的数据范围或单元格引用。可以输入一个范围的单元格地址,也可以多次使用参数指定多个范围。需要注意的是,每个区间必须参考于一个数据类型单一的列或多个连续的列。在具体使用时根据需要选择即可。
3. 编号9的含义
当使用SUM函数计算一列数据的总和时,如果数据区域中存在隐藏或筛选的行,那么结果可能会不准确。而当我们使用SUBTOTAL函数来计算总和时,它会自动忽略被隐藏或筛选的行,返回正确的结果。因此,使用SUBTOTAL函数比直接使用SUM函数更为准确。
具体地,在SUBTOTAL函数中,当函数编号为9(SUM函数)时,它会自动过滤被隐藏或筛选的行,并返回数据区域中所有未筛选行的总和。下面是一个简单的例子,用来演示如何使用SUBTOTAL函数来计算数据区域中的总和。

假设我们有一个数据表,包含以下列:日期、销售额和城市。我们想要计算销售额的总和,但该列可能包含被隐藏或筛选的行。为了找出解决方案,我们可以按照以下步骤进行操作:
1. 选择一个空单元格,并输入以下SUBTOTAL函数公式:`=SUBTOTAL(9, B2:B20)`。
2. 将公式中的B2:B20替换成销售额数据列的范围。
3. 按下回车键,函数将会自动计算未被隐藏或筛选行的销售额之和。
4. 如果我们对销售额列进行筛选或隐藏操作,函数将会自动重新计算总和,并忽略被隐藏或筛选的行。
总之,使用SUBTOTAL函数可以让我们更准确地计算数据区域的总和,并且可以自动忽略被隐藏或筛选的行。这个函数非常适合在Excel中处理大量数据时使用。
总的来说,SUBTOTAL函数是一个非常实用的Excel函数,可以对数据进行多种聚合计算,并且可以忽略被隐藏或访问权限受限制的行。常见的应用场景包括在工作表中处理金融数据、计费、制定预算以及分析趋势等。