今天我们的三个统计函数上场了,它们分别是Subtotal,Countif,Countifs,我们来看看它们都是怎么发挥它们的作用的。
首先先出场的是Subtotal
基本用法
我们的Subtotal函数呢不会单独使用,她会结合一些函数来使用,比如count,counta,countblant等。
=SUBTOTAL(function_num,ref1,…)
·在单元格输入=Subtotal( ,就会提示上述语法
·此函数并不是“一个函数”,而是“一群函数”
·此函数是Excel中唯一一个能统计用户可见单元格的函数
我们来看看输入公式选择后它都有哪些功能
1-AVERAGE40 =SUBTOTAL(1,B2:B8)平均值
2-COUNT7 =SUBTOTAL(2,B2:B8)统计个数
3-COUNTA7 =SUBTOTAL(3,B2:B8)非空单元格数量
4-MAX70 =SUBTOTAL(4,B2:B8)最大值
5-MIN10 =SUBTOTAL(5,B2:B8)最小值
6-PRODUCT50,400,000,000 =SUBTOTAL(6,B2:B8)括号内数据的乘积
7-STDEV.S22 =SUBTOTAL(7,B2:B8)标准偏差
8-STDEVP.P20 =SUBTOTAL(8,B2:B8)标准偏差
9-SUM.S280 =SUBTOTAL(9,B2:B8)求和
Subtotal隐藏值
当我们录入Subtotal后如果选择9,它是包含手动隐藏值的,而109是不包含的,我们可以手动验证一下。
Subtotal与Sum的区别
在这里我们需要注意,Subtotal与Sum在筛选后显示的结果是不同的:
SUBTOTAL,只对筛选数据结果数据进行求和
SUM,不受筛选结果影响,会对所有数据进行求和
Subtotal计数
Subtota函数经常和第三个Counta参数使用
Subtotal结合我们的需要进行数字的选择,其中代表的含义也不同。
结合案例,我们来看一下
COUNT返回包含数字以及包含参数列表中的数字的单元格的个数
COUNTA返回参数列表中非空值的单元格个数
筛选后填充
在A列单元格输入公式=SUBTOTAL(3,$B$2:B2),但我们按产品筛选时,它就是按产品生成的序号。
避开同类计算
当我们的表格中有求和的公式SUBTOTAL时
SUBTOTAL函数遇到同类就避开了,就是不会统计由SUBTOTAL计算出来的数值。
下面有请我们的Countif,Countifs出场
先请我们的Countif
基本用法-Countif
统计某销售员出现的次数,我们可以用Countif
在B2单元格输入公式=COUNTIF(明细表!C:C,A2),向下拖动填充即可
这里我们有两个注意点
1、COUNTIF函数的第一参数绝对引用,是为了公式向下填充时,保持引用范围不变;
2、COUNTIF函数的第二参数直接使用相对引用待统计单元格,公式向下填充时,D2依次变为D3、D4……
基本用法-Countifs
Countifs函数和我们求和函数Sumifs都属于多条件下的运算,一个是计数,一个是求和,我们看看Countifs的基本用法。
在D2单元格输入公式=COUNTIFS(明细表!C:C,A2,明细表!D:D,B2)
这里我们也有注意点
1、如果条件为文本,需要使用双引号引起来;
2、如果条件为数字,则无需使用双引号。
COUNTIFS函数将条件应用于跨多个区域的单元格,并计算符合所有条件的次数。即多条件计数。
COUNTIFS(criteria_range1,criteria1,criteria_range2,criteria2,…)
COUNTIFS(条件区域1,条件1,条件区域2,条件2…)
条件区域1:必需。在其中计算关联条件的第一个区域。
条件1:必需。要进行计数的第一个条件。
条件区域2:可选。在其中计算关联条件的第二个区域。
条件2:可选。要进行计数的第二个条件。
有练习题自己可以做做。
模糊条件计数
统计统计“张”姓次数
在A2单元格输入公式=COUNTIF(明细表!C:C,"张*")
统计“张”姓A产品次数
在A6单元格输入公式=COUNTIFS(明细表!C:C,"张*",明细表!D:D,"A")
文本 非空 真空数据个数
统计文本单元格个数 2 =COUNTIF($A$2:$A$10,"*")
统计非空数据个数 7 =COUNTIF($A$2:$A$10,"<>")
统计真空数据个数 2 =COUNTIF($A$2:$A$10,"=")
注意:
* 代替任意多个字符
<> 代表非空数据
= 代表真空数据
按产品统计序号
我们在产品前加两列辅助列,分别输入公式
=COUNTIF($C$2:C2,C2)
=C2&COUNTIF($C$2:C2,C2)
COUNTIF函数的统计区域是$C$2:C2,第一个C2是行绝对引用,第二个C2,是相对引用。
当公式向下复制时,就会变成$C$2:C3、$C$2:C4……一个不断扩展的区域,从这个动态区域中统计C列产品的个数。
按产品统计序号-乱序
这种乱序的情况也适合我们上面的公式输入方法,自己多加练习吧。
Countif函数+Vlookup函数一对多查询
要求:
左表为客户消费明细
要求在F:H列的蓝色区域根据F2的产品名称查找所有销售记录。
我们要根据A产品查询它的返回结日期、产品和销售额,我们要用Countif函数+Vlookup函数完成。
在单元格中输入公式=IFERROR(VLOOKUP($F$2&ROW(A1),$A:$D,COLUMN(B1),0),""),这里我们用IFERRO公式规避空数据区域的乱码显示。
操作步骤如下:
步骤1 在左表前插入一列并设置公式,用countif函数统计客户的销售额并用&连接成
产品名称+序号的形式。
A2:C2&COUNTIF($C$2:C2,C2)
步骤2 在F9设置公式并复制即可得到F2单元格中产品的所有销售记录。
=IFERROR(VLOOKUP($F$2&ROW(A1),$A:$D,COLUMN(B1),0),"")
解决一对多查找的关键点是把重复的值用Countif变成不同的,然后用Vlookup函数再进行查找。
掌握这个思路很重要
这个组合函数有点难,我们需要多操作几次,理解后就很很快做出来了。
数据有效性
我们的Countif还可以和数据有效性来一起使用
例如不能录入重复的姓名
我们先选取数据区域后点击数据-数据验证-允许选择自定义-公式处输入=COUNTIF($B$2:$B$21,B2)=1-确定,这时当我们输入相同名字的内容时,数据有效性就会提示,你输入的名字是重复的。
第二个案例是只能输入以A开头的文本
点击数据有效性后选择自定义-公式处输入=COUNTIF(F2,"A*")=1,确定,当我们输入的内容不是以A开头的了,它就会提示输入错误。
好了,今天的内容就是这么多,需要慢慢消化。
通过这段时间的学习,我觉着,为了更好的记忆和运用,上手操作是很必要的,必须的。