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

一,统计元素出现次数

使用公式

=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)),就是对这些倒数求和;^_^。

参考文章:

百科

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

原文链接:https://blog.csdn.net/GoOnDrift/article/details/109249086

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

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

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

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

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

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

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

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

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

  5. python统计excel中出现次数_使用pythonxlrd统计Excel表中特定单词的出现次数

    单元格可能包含多个单词,也可能不包含多个单词,因此必须在替换标点符号后split.在这里,这是一个翻译地图:import xlrd import os from string import punct ...

  6. python调用excel的宏_Excel Python 调用Excel-ExcelVBA程序开发-ExcelHome技术论坛 -

    不知大家是否知道Python这一非常强大的脚本语言. 现在介绍通过它是如何操作Excel的. 首先,安装好Python后,需要下一个win32com的补丁.用Google搜一下就可以找到了. 具体操作 ...

  7. 如何用python处理excel做直方图_Excel/python 如何实现自动分箱 (直方图)

    今天要完成一个数据大屏,我们想做一个板块:订单金额分布 怎么做呢?订单金额是连续型数据,订单金额随时在发生变化 其实是一个直方图制作,涉及到分箱技术 那如何实现自动分箱,自动将金额相近的订单金额分到同 ...

  8. python关于excel格式刷_Excel技巧—开始菜单之格式刷六大功能

    点赞再看,养成习惯:千里之行,始于足下. 微信搜索[亦心Excel]关注这个不一样的自媒体人. 本文 GitHub 今天我们主要学习的是"第一区块-剪贴板"中的"格式刷& ...

  9. Python 中list中所有值加和_Python 中去除列表中重复元素的5种方法

    (点击上方快速关注并设置为星标,一起学Python) 1.使用集合 Python中集合的元素是唯一的,具有去重的功能.使用集合与列表可以互转的特性,将列表转换为集合去重,再将集合转换为列表: def ...

  10. c语言中删除有序数组中重复元素,去除有序列表中的重复元素

    2014-10-27 09:13:00更新 你仔细研究一下我写的 testAsignPoint 和 testAsignPointAgain 函数就会明白为什么你的二级指针无效了. 还是那句话,你要记住 ...

最新文章

  1. github如何clone别人commit的历史版本的仓库
  2. 段式存储、页式存储。
  3. 《系统集成项目管理工程师》必背100个知识点-79版本控制流程
  4. 不要忽视任何小问题!!!一个XML的XPath的问题.....
  5. @Value和Hibernate问题
  6. jfinal java搭建_Eclipse快速搭建Jfinal web应用 (一)
  7. 真诚地希望你耐心的把它看完
  8. 华为交换机基本配置,秒看秒懂~~~
  9. ifix 读写mysql_[转载]vb6读取ifix实时数据库和历史数据库
  10. 字典和列表的删除问题, 深浅拷贝
  11. P5030 长脖子鹿放置
  12. Game101课程笔记_lecture06_光栅化2
  13. 微信小程序界面设计入门课程-样式wxss中使用css课程-字体-font-style字体风格
  14. 重生之我是赏金猎人-番外篇-记一次层层突破的攻防演练
  15. 如何更简单的使用Polly
  16. php5漏洞汇总,ThinkPHP 5.x RCE 漏洞分析与利用总结
  17. d2-admin动态菜单权限(登陆后)
  18. 老虎证券Java面经_老虎证券前端一面
  19. 君子签区块链电子合同助力二手车异地交易签约、档案管理全面电子化
  20. vue中读取文本文件内容_vue中读取本地文件

热门文章

  1. [zz]《2012武汉IT求职指南》IT行业、程序员求职专用
  2. pythonweb视频播放器_GitHub - python-web/Youku-HTML5-Player: 告别flash和广告
  3. java8 stream流 将一个list转换成list
  4. 【Unity】UGUI动态切换不同尺寸图片时自动设置Image大小
  5. cqyz oj | 化装晚会 | 二分搜索 | 贪心
  6. 实时操作系统linux,让linux变为实时操作系统
  7. 北邮计算机考研好难吗,北京邮电大学考研难吗?一般要什么水平才可以进入?...
  8. 毛概期末考试要点总结
  9. unity3d UMP插件报错 Can‘t load libvlccore library: 126
  10. 这两个工具能批量PDF转图片,建议收藏使用