首页 > 其他分享 >Excel单元格内数据去重,保留唯一值!

Excel单元格内数据去重,保留唯一值!

时间:2022-10-14 22:00:50浏览次数:52  
标签:aa Arr Excel 代码 单元格 保留 Brr



Excel情报局

职场联盟Excel


生产挖掘分享Excel基础技能

Excel爱好者大本营

用1%的Excel基础搞定99%的职场问题

做一个超级实用的Excel公众号

Excel是门手艺玩转需要勇气

数万Excel爱好者聚集地

SUPER EXCEL MAN


Excel单元格内数据去重,保留唯一值!_代码编辑器

Excel单元格内数据去重,保留唯一值!_数据_02

    Excel单元格内数据去重,保留唯一值!_分隔符_03


1

职场实例


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

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


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


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

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

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


Excel单元格内数据去重,保留唯一值!_分隔符_04


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

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


Excel单元格内数据去重,保留唯一值!_数据_05



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代码编辑器窗口内。


【运行代码】

点击编辑器窗口上方的【运行-运行子过程/用户窗体】按钮。

具体操作步骤如下图所示:


Excel单元格内数据去重,保留唯一值!_分隔符_06



3

代码释义


代码:Arr = [a1].CurrentRegion

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


Excel单元格内数据去重,保留唯一值!_数据_07


代码:For i = 2 To UBound(Arr)

其中2代表要从A列数据源中的第2个单元格开始进行去重。根据实际情况进行灵活变更。


Excel单元格内数据去重,保留唯一值!_代码编辑器_08


代码:If InStr(Arr(i, 1), "/") Then

代码:aa = Split(Arr(i, 1), "/")

代码:Brr(i, 1) = Join(d.keys, "/")

其中的“/”代表每个单元格中的分隔符“/”。根据实际情况进行灵活变更。


Excel单元格内数据去重,保留唯一值!_代码编辑器_09


代码:[b1].Resize(UBound(Brr), 1) = Brr

其中[b1]代表去重后的数据放置的位置即B列。根据实际情况进行灵活变更。


Excel单元格内数据去重,保留唯一值!_分隔符_10


回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。


Excel单元格内数据去重,保留唯一值!_代码编辑器_11

标签:aa,Arr,Excel,代码,单元格,保留,Brr
From: https://blog.51cto.com/u_15825298/5758018

相关文章

  • Excel如何生成2个随机值,相加始终为指定的固定值?
    Excel情报局职场联盟Excel生产挖掘分享Excel基础技能Excel爱好者大本营用1%的Excel基础搞定99%的职场问题做一个超级实用的Excel公众号Excel是门手艺玩转需要勇气数万Excel......
  • 一个兼顾点选输入与手动录入的Excel下拉菜单!
    Excel情报局职场联盟Excel生产挖掘分享Excel基础技能Excel爱好者大本营用1%的Excel基础搞定99%的职场问题做一个超级实用的Excel公众号Excel是门手艺玩转需要勇气数万Excel......
  • 这招Excel“另类”透视表,你会吗?
    Excel情报局职场联盟Excel生产挖掘分享Excel基础技能Excel爱好者大本营用1%的Excel基础搞定99%的职场问题做一个超级实用的Excel公众号Excel是门手艺玩转需要勇气数万Excel......
  • excel-分类汇总
    先看一张分类汇总的结果图,进而直观的理解分类汇总。解读:意义:按班级分类统计了各科成绩分数的平均值。关键内容:分类字段:班级汇总字段:语文、数学、英语、生物、地理、历史、政......
  • excel表格结构化引用
    结构化引用,听起来很神秘的一个词,但是我们几乎每一套题都实实在在的用到它。不需要会书写结构化引用,只要能读懂即可,甚至不读懂也对做题影响不大,但终究是一种磕绊。情景再现公......
  • 什么时候加双引号(excel)
    业精于勤,荒于嬉。函数公式中什么时候需要用到双引号呢?文本内容逻辑运算符只有一边有内容日期text函数的第二个参数datedif的第三个参数下面分别做介绍情形1:文本内容说明:文本......
  • Excel按行批量删除重复值!
    Excel情报局职场联盟Excel生产挖掘分享Excel基础技能Excel爱好者大本营用1%的Excel基础搞定99%的职场问题做一个超级实用的Excel公众号Excel是门手艺玩转需要勇气数万Excel......
  • 如何将每个合并单元格右侧的首行数据批量删除?
    Excel情报局职场联盟Excel生产挖掘分享Excel基础技能Excel爱好者大本营用1%的Excel基础搞定99%的职场问题做一个超级实用的Excel公众号Excel是门手艺玩转需要勇气数万Excel......
  • Excel隔行给姓名横向添加顺序序号!
    Excel情报局职场联盟Excel生产挖掘分享Excel基础技能Excel爱好者大本营用1%的Excel基础搞定99%的职场问题做一个超级实用的Excel公众号Excel是门手艺玩转需要勇气数万Excel......
  • Excel可动态更新范围的“打印区域”!
    Excel情报局职场联盟Excel生产挖掘分享Excel基础技能Excel爱好者大本营用1%的Excel基础搞定99%的职场问题做一个超级实用的Excel公众号Excel是门手艺玩转需要勇气数万Excel......