打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
985大学生面试想拿8k,老板说:连这个提取不重复值的方法都不会,只值3k!

每天一点小技能

职场打怪不得怂

编按:如何提取不重复值并统计数量?这是EXCELER在工作中普遍会遇到的问题。今天,小E给大家带来的就是从三个角度,用三种完全不同的方式去处理这类问题的方法。不管你是EXCEL小白还是有一定经验的数据民工,又或者是想成为大神的EXCEL老鸟,都能在这篇文中,找到适合你的方法。一秒搞定提取不重复值,其实很简单……

【前言】

今天说的EXCEL问题,其实在大家的日常工作中经常会遇到,例如下面的这个图:

公众号回复:入群,下载练习文件

这个问题中,A列中只列出了30行的数据,而实际工作中的数据情况则会有更多的变化。鉴于一切问题的解决方法都是“万变不离其宗”的,所以笔者将就上图的问题,给大家分别讲述三个不同的解决方法。看完以后,相信大家无论遇到再怎么复杂的同类问题,都会有思路去解决,而不至于“手足无措”。

【正文】

最简单的处理方式

对于提取不重复值的处理方法,笔者认为最简单的方式就是使用工具栏中的“删除重复值”功能键来实现。

首先选中A列,选择性粘贴为数值,粘贴到D列;然后选中D列,再点击工具栏——“数据”选项卡——“删除重复值”。这样我们就完成了提取唯一值的过程,如下图所示:

然后在E2单元格中输入函数:

=COUNTIF(A:A,D2)

下拉填充E2:E7单元格区域,及此完成操作。

点评:笔者认为,这个方式可能对于小伙伴们来说,是最容易上手而且是最直接的操作方式,简单两步就可以完成。虽然每次统计的时候都需要手动操作一遍,好在是不复杂。

最慌的处理方式

Hohoho,之所以叫它是“最慌”的处理方法,是因为它需要使用被EXCELER们称为“万金油”的公式。这个名字应该是如雷贯耳了吧,很多小伙伴估计都听过,也都知道万金油是处理去重并提取唯一值的利器。虽然在《EXCEL教程》的许多教程中都有相关案例,但依然有很多小伙伴不能很好的理解并使用它。

即使大家一看到“去重并提取唯一值”,就想到“万金油”公式,但一动手用“万金油”公式,还是只会“慌的一批”~~~

在D2单元格输入函数:

{=IFERROR(INDEX($A$2:$A$31,SMALL(IF(MATCH($A$2:$A$31,$A$2:$A$31,0)=ROW($A$1:$A$30),ROW($A$1:$A$30),99^9),ROW(D1))),"")}

公式解析:

MATCH($A$2:$A$31,$A$2:$A$31,0)=ROW($A$1:$A$30)

利用MATCH函数,判定A2:A31区域中的值,第一次出现的序号,是否和行号一致。

IF(……,ROW($A$1:$A$30),99^9)

利用IF函数,返回索引值。如果MATCH()中的行号一致,则返回行号;如果不一致,则返回99^9(一个绝对大的值)

SMALL(……,ROW(D1))

利用SMALL函数,提取前两步中返回的值,因为我们的函数需要下拉,那么ROW(D1)的值,就会随着下拉而随动,此函数的意义就变成,第1最小的值、第2最小的值、第3最小的值……

INDEX($A$2:$A$31,……)

在A2:A31中,提取第x个位置上的值,这个x值就是刚才SMALL()中返回的值。

=IFERROR(……,"")

最后使用IFERROR函数容错,使得错误值不出现。

点评:笔者认为,如果大家的函数水平还算过硬,那还是推荐大家使用这个方法。因为公式可以随着数据源的变化而变化,得出当前的结果,不需每次都要操作一遍。这个方法对于形成函数类型的模板是相当实用。

最正确的处理方式

最后一种方法,是笔者在工作中处理此类问题时,经常使用的方法。

可能对于有的小伙伴来说,它是一个“谈虎色变”的方法。但是不容否定的说,这个方法——VBA字典去重,才是真正打开“EXCEL去重”正确使用方式的方法。

首先按ALT+F11,打开VBE界面。在左侧的“工程窗口”中插入模块,然后在代码窗口中输入代码:

Sub 去重()

  Dim arr, d

  arr = Sheets("最对").Range("A2:A31")

  Set d = CreateObject("scripting.dictionary")

  For i = 1 To UBound(arr)

 d(arr(i, 1)) = d(arr(i, 1)) + 1

  Next i

  Sheets("最对").[D2].Resize(d.Count, 1) = Application.Transpose(d.keys)

  Sheets("最对").[E2].Resize(d.Count, 1) = Application.Transpose(d.items)

End Sub

小伙伴们运行代码后,就可以得到去重后的字段和相应的次数。

点评:笔者认为,EXCEL最大的魅力在于它的办公自动化,VBA又是在此基础上更进一步让大家真正实现办公自动化的操作。一段简单的代码,可以让你解放双手的同时,还可以提高表格统计的效率和计算的正确性。

【编后语】

此篇教程到这里就结束了,希望可以给大家带来一些思考。数组函数也好,VBA也好,都是需要大家对数据有深度地理解和逻辑思考能力。我们到底算不算一个“数据人”,在处理同一个问题时,看你选择哪种数据处理方法就已然可以判断了。

扫一扫添加老师微信


在线咨询Excel课程

Excel教程相关推荐


我花了5小时,整理出这13个办公中最实用的Excel技巧(建议收藏)

做了五年财务的小姐姐,竟然被Excel里的这个符号坑了?

四象限矩阵图为什么成为名企老板们最爱的excel图表?这是我见过的最佳答案!

《10天学会Excel》课程:带你学遍Excel技巧、函数、透视表、图表、数据分析等实用功能

想要全面系统学习Excel,不妨关注部落窝教育的《一周Excel直通车》视频课或者《Excel极速贯通班》。


主讲老师: 滴答

 

Excel技术大神,资深培训师;

课程粉丝100万+;

开发有《Excel小白脱白系列课》

        《Excel极速贯通班》。

原价299元

限时特价 99 

少喝两杯咖啡,少吃两袋零食

就能习得受用一生的Excel职场技能!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel中iferror函数知多少?教你如何去掉错误值
如何提取数据区域中的正值?
Excel公式技巧59:批量查找并返回找到的内容
学习了这个相当于学习了表格的20﹪_Excel
Excel如何不显示错误值?这三种方法,都能轻松搞定
excel如何快速提取不重复值?提供2个经典用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服