Excel去重计数,8种方法!历史最全!

如题所述

第1个回答  2023-09-10

问题很常见,但是对新手来说又比较棘手,所以我们来一期,系统讲讲,个人我个人的知识储备,大概写了8种,涵盖Excel的方方面面!最后一种也满足一下大家对于Python的好奇!

友情提醒:应该是目前你所能见到的最全面的了!先收藏!

需求:统计对应区域中不重复的人员个数?

方法1:辅助列+函数

这个方法推荐函数新手使用,帮助刚入门的同学解决问题!

=SUMPRODUCT(($B$2:$B$15=$E2)/COUNTIFS($A$2:$A$15,$A$2:$A$15))

没有条件单纯的统计不重复内容,基本大家都知道使用SUM(1/COUNTIF(区域,区域))套路!如果有条件呢,我们可以把多个条件组合到一起,就变成一列了,然后使用单列不重复统计,最后再根据区域式的等于需求的区域过滤!

如果你是一个函数高手,那么不用辅助列也可以!

方法2:函数法(无辅助列)

=SUMPRODUCT(($A$2:$A$15=$D2)/COUNTIFS($A$2:$A$15,$A$2:$A$15,$B$2:$B$15,$B$2:$B$15))

这个应该不需要我过多的解释,只是把辅助列放到了公式中,单条件变多条件!

好吧!你说函数法都太难了,有没有小白可以实现的,试试吧!

方法3:透视表法(新手)

要点说明:在创建透视表时必须勾选添加到数据模型才可以使用不重复统计!

其本质使用的是Power Pivot的不重复统计功能!

如果觉得上面的方法过于小白,那我们可以试试Power Query

方法4:Power Query

点击【转换】-【数据分组】-【非重复计数】确定即可!

在PQ中使用自带的分组功能,也能轻松搞定这样的需求!依旧不能再简单!

如果你想稍微酷点,那么使用VBA怎么样?

方法5:VBA

去重统计本是字典的强项,但是条件去重确实一点麻烦,不过可以使用双层字典即可轻松搞定!VBA爱好者,可以参考一下这种写法!

方法6:Power Pivot-DAX度量值

在PP中使用DAX函数DISTINCTCOUNT,可以非常简单的统计不重复的个数

写个度量值,扔到透视表值字段即可!

其实到这里,也就差不多了,不要总是说去重统计不会!

突然想起好久没写的SQL,好像我也懂一点点!要不写一下SQL,顺便练个手!

方法7:SQL法

select地区,count(*)as不重复人数from(select distinct*from[data$]where地区<>null)group by地区

先使用子查询去重,再进行分组聚合计数即可!有SQL大佬欢迎提供好的思路!

好吧!最后我再写一个Python就收工吧!

方法8:番外-Python

df.drop_duplicates().groupby('地区').count()

pandas在数据统计方面再次刷新了我的认知,一句搞定!不要鼓吹python

但是pandas确实是一个数据分析非常好用的库,谁用谁知道!