wendy12478
V2EX  ›  Excel

单元格内数据去重 纯分享 解决工作难题

  •  
  •   wendy12478 · Nov 19, 2024 · 1686 views
    This topic created in 551 days ago, the information mentioned may be changed or developed.
    工作上经常遇到需要处理的 excel 数据,比如某一单元格中有许多重复值
    示例,原单元格数据为:张三,李四,李四,王五
    去重后单元格数据变为:张三,李四,王五
    可以通过以下 vba 代码实现:

    ' 函数开始
    Function RemoveDuplicates(cell As Range) As String
    Dim items As Object
    Dim arr() As String
    Dim output As String
    Dim i As Long

    ' 创建字典对象用于去重
    Set items = CreateObject("Scripting.Dictionary")

    ' 将单元格内容按逗号拆分为数组
    arr = Split(cell.Value, ",")

    ' 遍历数组,将唯一值添加到字典
    For i = LBound(arr) To UBound(arr)
    arr(i) = Trim(arr(i)) ' 去除多余的空格
    If Not items.exists(arr(i)) Then
    items.Add arr(i), True
    End If
    Next i

    ' 将字典中的键合并为字符串
    output = Join(items.keys, ",")

    ' 返回去重后的结果
    RemoveDuplicates = output
    End Function
    ' 函数结束

    当然,上述代码中可以根据你数据分隔符不同,自由更改,也可以更改输出数据采用的分隔符。都是聪明人肯定知道怎么改啦!哈哈哈
    1 replies    2024-11-20 09:29:29 +08:00
    manbamentality
        1
    manbamentality  
       Nov 20, 2024
    6
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6044 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 06:12 · PVG 14:12 · LAX 23:12 · JFK 02:12
    ♥ Do have faith in what you're doing.