打开APP
userphoto
未登录

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

开通VIP
Excel表格同一单元格内的数据去重复值,真是职场办公无常,大肠包小肠!

Excel情报局
Excel职场联盟
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN
    

   

1

职场实例

今天小编遇到了这样的一个问题:

如何对【同一单元格内】用分隔符间隔开来的数据去重?


在职场办公中,真是啥Excel表格问题都会遇到,真是应了最近抖音上非常火的一句话:真是职场办公(人生)无常,大肠包小肠!


我们来用下面几组简单的数据在Excel中模拟一下具体的工作场景:

A列为我们遇到的原始数据,我们观察一下A列每个单元格的数据特点:

发现每个单元格中的数据都是由若干个相同的分隔符“/”,将几组数据间隔开来的,非常的有规律。但是被分隔符间隔开来的数据含有重复值,比如A1单元格“A/B/A/B”,含有重复的字符A和B,我们想要去除重复值,保留唯一值,去重后的数据如B2单元格所示:“A/B”。



有的小伙伴遇到这个问题,可能在自己的脑海中快速浮现出的功能是“删除重复值”对吧,但是Excel中【数据】-【数据工具】-【删除重复值】功能是不能实现今天这个去重场景的。我们看到微软Office对于【删除重复值】的解释:

删除工作表中的重复行,可以选择应检查哪些列的重复信息。所以它删除的是重复的行信息,针对的是整个单元格,而不能对单元格内的具体信息辨别去重。


2

问题解答


针对这样的工作场景,Excel没有提供给我们一个最直接的功能按钮解决这样的问题。但我们可以使用VBA代码快速的解决今天的问题。
代码如下】:
Sub lqxs()Dim Arr, i&, aa, j&, Brr, dSet d = CreateObject("Scripting.Dictionary")Sheet1.ActivateArr = [a1].CurrentRegionReDim Brr(1 To UBound(Arr), 1 To 1)For i = 2 To UBound(Arr)    If InStr(Arr(i, 1), "/") Then        aa = Split(Arr(i, 1), "/")        For j = 0 To UBound(aa)            If aa(j) <> "" Then d(aa(j)) = ""        Next    End If    Brr(i, 1) = Join(d.keys, "/")    d.RemoveAllNext[b1].Resize(UBound(Brr), 1) = BrrEnd Sub
代码是现成的,所以不需要我们自己去复杂的编写,直接复制粘贴即可。
运行VBA代码的【三步】经典步骤:
①【打开VBA代码编辑器】
鼠标右击工作表名称标签,点击【查看代码】(或按快捷键Alt+F11键),进入到VBA代码编辑器窗口。
②【复制粘贴代码】
将上面的一段代码复制并粘贴到VBA代码编辑器窗口内。
③【运行代码】
点击编辑器窗口上方的【运行-运行子过程/用户窗体】按钮。
具体操作步骤如下图所示:


3

代码释义


代码:Arr = [a1].CurrentRegion

其中[a1]代表要进行去重的数据所在的列即A列。根据实际情况进行灵活变更。

代码:For i = 2 To UBound(Arr)
其中2代表要从A列数据源中的第2个单元格开始进行去重。根据实际情况进行灵活变更。

代码:If InStr(Arr(i, 1), "/") Then
代码:aa = Split(Arr(i, 1), "/")
代码:Brr(i, 1) = Join(d.keys, "/")
其中的“/”代表每个单元格中的分隔符“/”。根据实际情况进行灵活变更。

代码:[b1].Resize(UBound(Brr), 1) = Brr
其中[b1]代表去重后的数据放置的位置即B列。根据实际情况进行灵活变更。

阅读完文章之后,希望小伙伴们在文章底部帮助小编[点赞]+点亮[在看];如果觉得内容有价值欢迎[分享]给你的同事朋友;小编也和大家一样,正在不断的学习与积累中,坚持持续分享的道路上很艰辛,需要有你们的鼓励与支持!每一分收获就藏在每一分耕耘里,多学一个Excel小知识点,会让你在职场中多一分底气和自信。


 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
VBA入门50:数组练习(转置)
excel拆分合并技巧:将总表拆分成工作表的方法
VBA数组声明及赋值后的回填方法
用VBA代码删除EXCEL行实例
用VBA代码查询两列数据差异
《神奇的VBA》编程:批量拆分单元格数据
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服