EXCEL筛选删重复数据合并数据?

2024-12-03 23:11:38
推荐回答(2个)
回答(1):

示例数据:

在工作表里面按ALT+F11,然后再按CTRL+R,在工作簿上点鼠标右键、插入模块,粘贴下面的代码:

Option Explicit


Sub x()

    Dim arr, obj, i, j, k

    arr = Range("a1").CurrentRegion

    Set obj = CreateObject("Scripting.Dictionary")

    For i = 2 To UBound(arr)

        For j = 1 To 3

            arr(i, j) = Trim(arr(i, j))

        Next j

        k = arr(i, 1) & vbTab & arr(i, 2)

        If Not obj.Exists(k) Then obj.Add k, CreateObject("Scripting.Dictionary")

        obj(k)(arr(i, 3)) = True

    Next i

    i = 2

    For Each k In obj.Keys

        j = Split(k, vbTab)

        arr(i, 1) = j(0)

        arr(i, 2) = j(1)

        arr(i, 3) = Join(obj(k).Keys, "、")

        i = i + 1

    Next k

    i = i - 1

    Workbooks.Add

    ActiveSheet.Range("a1").Resize(i, 3) = arr

End Sub

粘贴后如图:

此时可以按F5执行宏,会自动新生成一个合并好了的工作表,如下图:

代码使用上应该非常完美,只是注意一点,程序假设数据是从A1开始,如果你的表不是需要修改代码第5行arr = Range("a1").CurrentRegion里面的a1

回答(2):

用VBA处理,把发文件到mijizili@163.com