Excel指定条件下不重复计数的四种⽅法,看看你⽤了⼏种?
上个⽉,在给北京⼀家药企培训时,有伙伴问如何计算不重复的个数。这是⼀个有代表性的问题,我将⽅法整理出来,看你能不能⽤得上?
案例数据
这是公司的部分销售订单表,主要涉及省份、城市、业务类别和⾦额。
要求:
统计公司三⼤业务覆盖的省份数量。
这是典型的⾮重复计数的案例,从今天开始营长会给你介绍函数法、透视表法、Power Query法和Power Pivot法,供你参考。
1.组合函数法
⾸先介绍经典的组合函数
SUMPRODUCT(1/COUNTIF)
先不考虑业务类别的因素,仅仅统计表中共有⼏个省份
在H7单元格中,输⼊公式:
=SUMPRODUCT(1/COUNTIF(C2:C23,C2:C23))
在365版本中,可以⽤UNIQUE函数获取唯⼀值的列表,再⽤COUNTA函数统计。
H7=COUNTA(UNIQUE(C2:C23))
那要加上业务类别的限制怎么办?
公式要做调整,COUNTIF变成COUNTIFS
组合函数为
SUMPRODUCT(条件1*(1/COUNTIFS(条件1范围,条件1范围,统计范围,统计范围)))
条件1范围和统计范围在函数中的位置可以互换。
I7单元格中输⼊公式:
=SUMPRODUCT(($E$2:$E$23=H5)*(1/COUNTIFS($C$2:$C$23,$C$2:$C$23,$E$2:$E$23,$E$2:$E$23)))
当然,⽤365版本公式要简单得多,除了⽤COUNTA和UNIQUE函数外,还要⽤到动态筛选函数FILTER
公式变成了
=COUNTA(UNIQUE(FILTER($C$2:$C$23,$E$2:$E$23=H5)))
2.数据模型透视法
如果⽤Excel默认的透视表来做,会发现统计结果还是重复计数,⾮重复计数是灰⾊的。
怎么办?
怎么办?
怎么办?
其实,特别简单,只需勾选“将此数据添加到数据模型”即可。
数据模型功能建议⾄少⽤2016版本。
这样,在“值汇总依据”中可以⽤“⾮重复计数”功能了。
结果也就显⽰出来了。
看来,数据模型做的透视表还真不⼀样。数据模型⽀持多表建⽴关系,Excel数据不再像信息孤岛⼀样,仅仅通过VLOOKUP建⽴联系。⽽是组团作战,多张表可以形成互相关联的数据库,也就是模型。
根据数据模型可以实现多表关联透视,我称之为“超级透视”。
所以,将来表哥表见⾯了,会问到“你⽤超级透视了吗?”
3.Power Query数据查询法
Power Query是从Excel 2016开始软件内置的数据查询⼯具,我称之为Excel最最强⼤的后台,也就是我们要逐步更新⼀种观念,Excel数据处理分为前台和后台两种⼯具,我们平时看到的更多的就是Excel的前台表格。
下图显⽰的是Office 2016和Office 365版本中Excel的Power Query功能。
Excel 2016
Excel 365
在Excel中与Power Query有关的功能都集中在功能区“数据”选项卡中,不同版本功能菜单名称略有差别。
利⽤上⾯的⼯具我们可以开始数据加载,在进⾏查询编辑的时,Excel也会⾃动打开“Power Query编辑器”。
回到我们的案例,⾸先要将数据导⼊PQ编辑器中
进⼊PQ编辑器,点击“分组依据”进⾏分类汇总
按业务类别进⾏计数
默认的汇总结果如下,很显然没有去除重复数据。
这时候,需要改变上⽅的函数语句
原始语句为
= Table.Group(更改的类型, {"业务类别"}, {{"计数", each Table.RowCount(_), Int64.Type}})
更改为
= Table.Group(更改的类型, {"业务类别"}, {{"省份数量", each List.Count(List.Distinct(_[省份])), Int64.Type}})
最后,关闭并上载即可。
就将数据传送到了Excel前台表格中,还⽀持⼀键刷新。
4.Power Pivot度量值法
Power Pivot在Excel 作为⼀个“COM加载项”提供,默认没有启⽤。下⾯我们介绍启⽤该加载项的⽅法。
步骤1:在Excel的“⽂件”选项卡中选择【选项】,出现的对话窗中左边选择【加载项】,右侧窗⼝选择【管理:COM加载项】,然后点击【转到】按钮。
步骤2:出现的对话窗中勾选“Microsoft Power Pivotfor Excel”选项。
这⾥⼤家也可以选择其它ExcelPower 加载项。完成加载后可以在功能区上看到对应的⼯具选项卡。
⾸先需要将数据添加到数据模型中
添加后的Power Pivot窗⼝
退出Power Pivot窗⼝后,点击“新建度量值”
度量值名称:不重复省份数量
公式中输⼊
=DISTINCTCOUNT('订单表'[省份])
DISTINCT函数可以去除重复值
DISTINCTCOUNT函数是统计去除重复值后的数量
这些都是Power Pivot模型中的DAX函数。
countifs函数怎么输入条件建⽴好度量值后,就可以创建数据透视表,需要从数据模型中创建。会发现透视表的字段列表中增加了刚刚建⽴的度量值
fx不重复省份数量
前⾯有fx标记
将度量值和业务类别拖动到对应的统计位置即可
那么,问题来了
透视表中的总计为什么不是13,⽽是7?
好了,这次关于不重复计数的教程就全部结束了,希望对你有帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论