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

一,统计元素出现次数

使用公式

=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

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

  1. java数组找出重复元素及次数_Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置...

    面试题查找重复元素并打印重复次数和重复位置,一顿懵逼,回来死磕写下来,打印指定重复次数和最大次数,其他在此基础上可以再更新 package sort; import org.testng.annota ...

  2. python统计excel出现次数_Excel-统计元素出现次数和统计不重复元素的个数

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

  3. python去重复元素_Python实现去除列表中重复元素的方法总结【7种方法】

    这里首先给出来我很早之前写的一篇博客,Python实现去除列表中重复元素的方法小结[4种方法],感兴趣的话可以去看看,今天是在实践过程中又积累了一些方法,这里一并总结放在这里. 由于内容很简单,就不再 ...

  4. python删除list多个相同元素_python删除list中的重复元素

    可以使用append方法实现. 首先设一个临时列表保存结果,然后从头遍历原列表,如临时列表中没有当前元素则追加. 具体代码: 给定一个列表,要求删除列表中重复元素.listA = ['python', ...

  5. 顺序表元素的多种删除方式——删除重复元素和删除掉所有相同元素

    大家好,初来乍到请多关照~ 最近老师给留的编程作业里有一道题让我相当困惑:题目是这个样子的: 任务描述 本关任务: (1)使用将顺序表L中值为x的数据元素替换为y: (2)此处假设线性表中的元素用于表 ...

  6. php 数组去除相同元素,php如何去除数组的重复元素

    [摘要] PHP即"超文本预处理器",是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 ...

  7. python列表统计每个元素出现次数_python 统计list中各个元素出现的次数的几种方法...

    利用字典dict来完成统计 举例: a = [1, 2, 3, 1, 1, 2] dict = {} for key in a: dict[key] = dict.get(key, 0) + 1 pr ...

  8. python如何统计出现的次数_Python统计日志中每个IP出现次数的方法

    本文实例讲述了Python统计日志中每个IP出现次数的方法.分享给大家供大家参考.具体如下: 这脚本可用于多种日志类型,本人测试MDaemon的all日志文件大小1.23G左右,分析用时2~3分钟 代 ...

  9. oracle统计id出现次数,oracle 统计sql

    oracle 统计月平均交易次数 : select n_tsc_src_usr_id , floor(count(c_tsc_no)/trunc(months_between(max(d_tsc_re ...

最新文章

  1. BCH专属“谷歌地图”凸显BCH魅力
  2. 在Asp.Net MVC中使用ModelBinding构造Array、List、Collection以及Dictionary
  3. Kubernetes-连接Harbor仓库拉取镜像
  4. JAVA多线程互斥同步例子
  5. C++/C中 sizeof(指针)和sizeof(数组名)的区别
  6. 针对文字加密的简单 JS 加密算法 --进制乱序法改良版
  7. JS中SetTimeOut和SetInterval方法的区别?
  8. sql中having、group by用法及常用聚合函数
  9. 蓝桥杯 BASIC-15 基础练习 字符串对比
  10. 富国基金:基金公司是如何进行数据架构规划与实践的
  11. 抖音云蹦迪源码/很火的直播打赏类项目源码
  12. 从GSM-GPRS-WCDMA-LTE网络结构的变化,分析话音和数据交换技术的演进过程
  13. Php怎样实现通过邮箱找回密码,PHP如何使用邮箱找回密码?
  14. 【简历】Android简历该这样写
  15. 阿里iconfont矢量图库使用
  16. 当天剩余时间,当月剩余时间(秒数),用于redis设置过期时间
  17. 互联网公司分布式系统架构演进之路
  18. C# RadioButton: 单选按钮控件
  19. 流媒体服务器(17)—— 流媒体开源服务 MediaSoup 初识
  20. MERGER INTO语法

热门文章

  1. 罗技MX Keys从蓝牙连接切换为优联(无线接收器)连接
  2. Go 语言中的label使用
  3. 印度汇丰银行首次通过区块链完成海外贸易
  4. YOLOv3-Tiny检测包装标签
  5. 怎么用html做进制转换器,怎样用电脑自带计算器进行进制之间的转换
  6. 作为管理者的第6周工作感悟
  7. 基于准确度评估的7自由度手术机器人术前摆位优化算法
  8. Docker - ERROR: failed to register layer: symlink
  9. 关于ios最新系统[我是ios13.3]开发摇一摇的时候无法触发devicemotion的原因
  10. linux火狐浏览器加载插件日志,学习ubuntu笔记001——在火狐浏览器中安装falsh插件...