Excel-统计元素出现次数和统计不重复元素的个数

在实际工作中,我们经常遇到这样的情况,给你一个几千条几万条记录的表格,让你统计每个元素出现的次数,或者是让你统计一下总计有多少个不重复的元素。现在来简单介绍一下怎么处理这个问题,方法学了一次,就可以使用一辈子了。例子如下:

一,统计元素出现次数

使用公式

=COUNTIF($B$2:$B$19,B2)

函数说明:COUNTIF函数主要用于条件计数。

格式:COUNTIF(range,criteria),第一个参数表示范围,可以是B2:B19,第二个参数表示值,可以是数,也可以是字符串;主要作用是统计某个范围内,某个数据出现的总次数。

COUNTIF($B$2:$B$19,B2:B19)将对B2:B19单元格区域中的每个数据进行个数统计,也就是B2:B19单元格区域中B2单元格数值的个数是COUNTIF(B2:B19,B2),B2:B16单元格区域中B3单元格数值的个数是COUNTIF(B2:B19,B3)。。。以此类推,相当于=COUNTIF(B2:B19,{B2;B3;...;B19}),最后的结果就是将每一单元格数值个数组成一个集合{4;3;6;6;...;6)

 

二,统计不重复元素的个数

我们可以在D2单元格输入如下公式,即可统计出B列B2:B19单元格区域的不重复值的个数。

=SUMPRODUCT(1/COUNTIF($B$2:$B$19,B2:B19))

在具体解释这个公式之前,我们先介绍一个例子:

假如有一个字母序列:ABCCDCABFCADEAECBC....,允许出现重复的元素,那么,怎么统计其中出现了几个不同的元素呢?

程序设计中,常规的做法是创建一个set,把所有元素都扔到set里面去;因为set不允许重复,所以最后只要统计set中元素的个数就好了。但是这种方法比较麻烦,还需要写代码。我们来思考一个巧妙的方法:

假如字母x出现了n次,那么每个单独的x,都是在总量中占据了1/n份;于是,对这n个1/n求和,就得到了1。因为x为任意字母,n为任意数字,所以这种接法适用于任意情况,不论n是1,是2,还是3,或者是10000。牛逼吧,这就是规律。

根据这个规律,我们可以将该问题经过两次转化而轻松解决:

1,求出每个元素出现次数,作为第三列。

2,增加第四列,每个元素出现次数的倒数。通过对倒数求和来得到不重复元素的个数。

第一步可以通过COUNTIF函数来完成;第二步可以通过SUMPRODUCT函数来实现。

函数说明:SUMPRODUCT函数有很多功能,其中一个功能是按照条件进行求和。

回到主题,COUNTIF($B$2:$B$19,B2:B19),就是统计每个元素的出现次数;1/COUNTIF($B$2:$B$19,B2:B19),就是对出现次数求倒数;SUMPRODUCT(1/COUNTIF($B$2:$B$19,B2:B19)),就是对这些倒数求和;^_^。

 

参考文章:

百科

https://baike.baidu.com/item/countif%E5%87%BD%E6%95%B0/2014947?fromtitle=countif&fromid=10075753&fr=aladdin

万能函数Sumproduct能解决4大类统计问题,你相信吗?

https://baijiahao.baidu.com/s?id=1616742949017064270&wfr=spider&for=pc

 

 

评论 3 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

xtf__moji

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值