Table of contents
本教程解释了Excel中SUBTOTAL函数的特殊性,并展示了如何使用小计公式来汇总可见单元格中的数据。
在上一篇文章中,我们讨论了通过使用小计功能在Excel中插入小计的自动方法。 今天,你将学习如何自己编写小计公式,以及这对你有什么好处。
Excel小计函数--语法和用途
微软将Excel SUBTOTAL定义为在列表或数据库中返回小计的函数。 在这里,"小计 "不仅仅是将定义的单元格范围内的数字加总。 与其他只为做一件特定事情的Excel函数不同,SUBTOTAL具有惊人的通用性--它可以进行不同的算术和逻辑运算,如计算单元格、计算平均值。找到最小或最大的值,以及更多。
SUBTOTAL函数在所有版本的Excel 2016、Excel 2013、Excel 2010、Excel 2007和更低版本中都可用。
Excel SUBTOTAL函数的语法如下。
SUBTOTAL(function_num, ref1, [ref2], ...)在哪里?
- 职能_num - 一个数字,用于指定小计使用的函数。
- 参考文献1,参考文献2,... - 一个或多个要进行小计的单元格或范围。 第一个参数是必须的,其他参数(最多254个)是可选的。
function_num参数可以属于下列集合之一。
- 1 - 11 忽略被过滤掉的单元格,但包括手动隐藏的行。
- 101 - 111 忽略所有隐藏的单元格 - 被过滤掉并手动隐藏。
职能_num | 职能 | 描述 | |
1 | 101 | 平均数 | 返回数字的平均数。 |
2 | 102 | COUNT | 计算含有数字值的单元格。 |
3 | 103 | COUNTA | 计算非空的单元格。 |
4 | 104 | 规模 | 返回最大的值。 |
5 | 105 | 敏 | 返回最小的值。 |
6 | 106 | 产品 | 计算单元格的乘积。 |
7 | 107 | STDEV | 返回基于数字样本的人口的标准偏差。 |
8 | 108 | ǞǞǞ | 返回基于整个数字群体的标准偏差。 |
9 | 109 | 累计 | 将数字相加。 |
10 | 110 | VAR | 根据一个数字样本估计人口的方差。 |
11 | 111 | VARP | 在整个数字群体的基础上估计一个群体的方差。 |
事实上,没有必要记住所有的函数号码。 只要你开始在单元格或公式栏中输入小计公式,Microsoft Excel就会为你显示一个可用的函数号码列表。
例如,你可以这样制作一个Subtotal 9公式,将单元格C2到C8中的数值相加。
要在公式中添加一个函数数字,请双击它,然后输入一个逗号,指定一个范围,输入结束的括号,然后按回车键。 完成的公式将看起来像这样。
=小计(9,c2:c8)
以类似的方式,你可以写一个小计1的公式来获得平均数,小计2来计算有数字的单元格,小计3来计算非空白单元格,等等。 下面的截图显示了其他几个公式的作用。
注意:当你将小计公式与SUM或AVERAGE等汇总函数一起使用时,它只计算有数字的单元格,而忽略空白和含有非数字的单元格。
现在你知道了如何在Excel中创建小计公式,主要的问题是--为什么要费力地学习它呢? 为什么不简单地使用一个普通的函数,如SUM、COUNT、MAX等? 你将在下面找到答案。
在Excel中使用SUBTOTAL的三大理由
与传统的Excel函数相比,SUBTOTAL给你带来了以下重要优势。
1.计算过滤后的行的数值
由于Excel SUBTOTAL函数忽略了被过滤掉的行中的值,你可以用它来创建一个动态的数据汇总,其中小计值会根据过滤器自动重新计算。
例如,如果我们过滤表格,只显示东部地区的销售额,小计公式将自动调整,使所有其他地区从总数中删除。
注意:由于两个函数的数字集(1-11和101-111)都忽略了被过滤掉的单元格,在这种情况下你可以使用小计9或小计109公式。
2.只计算可见的单元格
正如你所记得的,带有函数号101至111的小计公式忽略了所有隐藏的单元格--被过滤掉的和手动隐藏的。 因此,当你使用Excel的隐藏功能从视图中移除不相关的数据时,使用函数号101-111将隐藏行中的数值从小计中排除。
下面的例子将帮助你更多地了解它是如何工作的:小计9与小计109。
3.忽略嵌套小计公式中的数值
如果提供给你的Excel小计公式的范围包含任何其他小计公式,这些嵌套的小计将被忽略,所以相同的数字不会被计算两次。 很棒,不是吗?
在下面的屏幕截图中,大平均数公式 小计(1, c2:c10)
忽略了C3和C10单元格中的小计公式的结果,就像你使用了一个有两个独立范围的平均公式一样。 平均值(c2:c5, c7:c9)
.
在Excel中使用小计--公式示例
当你第一次接触到SUBTOTAL时,它可能看起来很复杂,很棘手,甚至毫无意义。 但一旦你踏实下来,你会发现它并不难掌握。 下面的例子将向你展示一些有用的技巧和启发的想法。
例1.小计9对小计109
正如你已经知道的,Excel SUBTOTAL接受两组函数数字:1-11和101-111,这两组数字都忽略了被过滤掉的行,但数字1-11包括手动隐藏的行,而101-111则不包括这些行。 为了更好地理解区别,让我们考虑以下例子。
共计 已过滤的行数 你可以使用小计9或小计109公式,如下图所示。
但如果有 隐藏的 不相关的项目通过使用 隐藏行数 命令在 首页 标签> 细胞 组>。 格式 > 隐藏 & 取消隐藏 ,或通过右键单击行,然后单击 隐藏 , 现在你想只对可见行的值进行总计,Subtotal 109是唯一的选择。
其他函数数字的工作方式也是如此。 例如,要计算 非空白过滤的细胞 小计3或小计103公式都可以。 但只有 小计 103 如果有任何可见的非空白,可以适当地计算可见的非空白。 隐藏的 范围内的行数。
注意:Excel SUBTOTAL函数的函数号为101-111,它忽略了隐藏行中的值,但不忽略隐藏行中的值。 隐藏列 例如,如果你使用一个公式,如 小计(109, a1:e1)
在一个水平范围内对数字进行求和,隐藏一列不会影响小计。
例2.IF+SUBTOTAL来动态汇总数据
如果你正在创建一个摘要报告或仪表盘,你必须显示各种数据摘要,但你没有空间容纳所有的数据,以下方法可能是一个解决方案。
- 在一个单元格中,做一个包含函数名称的下拉列表,如总计、最大、最小等等。
- 在下拉菜单旁边的单元格中,输入一个嵌套的IF公式,其中嵌入的Subtotal函数与下拉列表中的函数名称相对应。
例如,假设要进行小计的值在单元格C2:C16中,而A17中的下拉列表中含有 共计 , 平均值 , 最大 ,以及 闵行区 项目,"动态 "小计公式如下。
=IF(A17="总计", SUBTOTAL(9,C2:C16), IF(A17="平均", SUBTOTAL(1,C2:C16), IF(A17="最小", SUBTOTAL(5,C2:C16), IF(A17="最大", SUBTOTAL(4,C2:C16),""))))
而现在,根据你的用户从下拉列表中选择的函数,相应的小计函数将在过滤的行中计算出数值。
提示:如果突然间下拉列表和公式单元格从你的工作表中消失了,一定要在过滤器列表中选择它们。
Excel小计不工作--常见错误
如果你的小计公式返回错误,很可能是由于以下原因之一。
#VALUE!
- function_num参数不是1-11或101-111之间的整数;或者任何一个ref参数包含一个3-D引用。
#DIV/0!
- 如果指定的汇总函数必须执行除以0的操作(例如,为不包含单一数值的单元格范围计算平均数或标准差),就会发生这种情况。
#NAME?
- Subtotal函数的名称拼错了--这是一个比较容易解决的错误:)
提示:如果你对SUBTOTAL功能还不太适应,你可以使用内置的SUBTOTAL功能,让它自动为你插入公式。
这就是如何使用Excel中的SUBTOTAL公式来计算可见单元格中的数据。 为了使例子更容易理解,欢迎你下载我们下面的工作簿样本。 谢谢你的阅读!
实践工作手册
Excel SUBTOTAL公式示例(.xlsx文件)。