软件下载 点击激活 软件下载

四种方法解决Excel中不重复计数的问题

有伙伴问如何计算不重复的个数。这是一个有代表性的问题,我整理出来以下四种方法,分别是函数法、透视表法、Power Query法和Power Pivot法,看你能不能用得上?

 

案例数据

 

这是公司的部分销售订单表,主要涉及省份、城市、业务类别和金额。

 

四种方法解决Excel中不重复计数的问题

 

要求:

统计公司三大业务覆盖的省份数量,这是典型的非重复计数的案例。

 

 


函数法

 

本文介绍经典的组合函数

 

SUMPRODUCT(1/COUNTIF)

 

先不考虑业务类别的因素,仅仅统计表中共有几个省份

 

在H7单元格中,输入公式:

 

=SUMPRODUCT(1/COUNTIF(C2:C23,C2:C23))

 

四种方法解决Excel中不重复计数的问题

 

在Office 365版本中,可以用UNIQUE函数获取唯一值的列表,再用COUNTA函数统计。

 

H7=COUNTA(UNIQUE(C2:C23))

 

四种方法解决Excel中不重复计数的问题

 

那要加上业务类别的限制怎么办?

 

公式要做调整,COUNTIF变成COUNTIFS

 

组合函数为

SUMPRODUCT(条件1*(1/COUNTIF(条件1范围,条件1范围,统计范围,统计范围)))

 

条件1范围和统计范围在函数中的位置可以互换。

 

四种方法解决Excel中不重复计数的问题

 

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

 

四种方法解决Excel中不重复计数的问题

 

公式变成了

=COUNTA(UNIQUE(FILTER($C$2:$C$23,$E$2:$E$23=H5)))

 


数据模型透视法

 

如果用Excel默认的透视表来做,会发现统计结果还是重复计数,非重复计数是灰色的。

 

四种方法解决Excel中不重复计数的问题

四种方法解决Excel中不重复计数的问题

 

怎么办?

怎么办?

怎么办?

 

其实,特别简单,只需勾选将此数据添加到数据模型即可。

 

数据模型功能建议至少用2016版本。

 

四种方法解决Excel中不重复计数的问题

 

这样,在“值汇总依据”中可以用非重复计数功能了。

 

四种方法解决Excel中不重复计数的问题

 

结果也就显示出来了。

 

四种方法解决Excel中不重复计数的问题

 

看来,数据模型做的透视表还真不一样。数据模型支持多表建立关系,Excel数据不再像信息孤岛一样,仅仅通过VLOOKUP建立联系。而是组团作战,多张表可以形成互相关联的数据库,也就是模型。

 

根据数据模型可以实现多表关联透视,我称之为“超级透视”。

 

所以,将来表哥表姐见面了,会问到“你用超级透视了吗?”

 


Power Query数据查询法

 

Power Query是从Excel 2016开始软件内置的数据查询工具,我称之为Excel最最强大的后台,也就是我们要逐步更新一种观念,Excel数据处理分为前台和后台两种工具,我们平时看到的更多的就是Excel的前台表格。

 

下图显示的是Office 2016和Office 365版本中Excel的Power Query功能。

 

四种方法解决Excel中不重复计数的问题

Excel 2016

 

四种方法解决Excel中不重复计数的问题

Excel 365

 

在Excel中与Power Query有关的功能都集中在功能区“数据”选项卡中,不同版本功能菜单名称略有差别。

四种方法解决Excel中不重复计数的问题

 

利用上面的工具我们可以开始数据加载,在进行查询编辑的时,Excel也会自动打开“Power Query编辑器”。

 

回到我们的案例,首先要将数据导入PQ编辑器中

 

四种方法解决Excel中不重复计数的问题

 

进入PQ编辑器,点击分组依据进行分类汇总

 

四种方法解决Excel中不重复计数的问题

 

按业务类别进行计数

 

四种方法解决Excel中不重复计数的问题

 

默认的汇总结果如下,很显然没有去除重复数据。

 

四种方法解决Excel中不重复计数的问题

 

这时候,需要改变上方的函数语句

 

原始语句为

= Table.Group(更改的类型, {“业务类别”}, {{“计数”, each Table.RowCount(_), Int64.Type}})

 

更改为

 

= Table.Group(更改的类型, {“业务类别”}, {{“省份数量”, each List.Count(List.Distinct(_[省份])), Int64.Type}})

 

最后,关闭并上载即可。

 

四种方法解决Excel中不重复计数的问题

 

就将数据传送到了Excel前台表格中,还支持一键刷新。

 

四种方法解决Excel中不重复计数的问题


Power Pivot度量值法

 

Power Pivot在Excel 作为一个“COM加载项”提供,默认没有启用。下面我们介绍启用改加载项的方法。

 

步骤1:Excel的“文件”选项卡中选择【选项】,出现的对话窗中左边选择【加载项】,右侧窗口选择【管理:COM加载项】,然后点击【转到】按钮。

 

四种方法解决Excel中不重复计数的问题 

步骤2出现的对话窗中勾选“Microsoft Power Pivotfor Excel”选项。

 

四种方法解决Excel中不重复计数的问题

 

这里大家也可以选择其它ExcelPower 加载项。完成加载后可以在功能区上看到对应的工具选项卡。

 

首先需要将数据添加到数据模型中

 

四种方法解决Excel中不重复计数的问题

 

添加后的Power Pivot窗口

 

四种方法解决Excel中不重复计数的问题

 

退出Power Pivot窗口后,点击新建度量值

 

四种方法解决Excel中不重复计数的问题

 

度量值名称:不重复省份数量

 

公式中输入

=DISTINCTCOUNT(‘订单表'[省份])

DISTINCT函数可以去除重复值

DISTINCTCOUNT函数是统计去除重复值后的数量

 

这些都是Power Pivot模型中的DAX函数。

 

四种方法解决Excel中不重复计数的问题

 

建立好度量值后,就可以创建数据透视表,需要从数据模型中创建。

 

四种方法解决Excel中不重复计数的问题

 

会发现透视表的字段列表中增加了刚刚建立的度量值

 

fx不重复省份数量

 

前面有fx标记

 

将度量值和业务类别拖动到对应的统计位置即可

 

四种方法解决Excel中不重复计数的问题

 

那么,问题来了

 

透视表中的总计为什么不是13,而是7?可以在文末留言。

好了,这次关于不重复计数的教程就全部结束了,希望对你有帮助。

给TA打赏
共{{data.count}}人
人已打赏
办公技巧

这几个冷门的Word技巧,真好用

2022-8-7 23:09:54

办公技巧

用数据透视表 Out了,这才是Excel动态图表最简单做法

2022-8-8 21:22:39

文章版权声明 1、本网站名称:office自学网
2、本站永久网址:https://www.officezxw.com/
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ:1241926466进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索