加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Excel VBA: 从多列数据项中发现重复项,统计重复项出现次数和所在列

(2016-10-16 20:06:00)
分类: VBA

Sub 提取重复项()
    Dim d, d1 As Object
    Dim arr
    Dim i As Integer, j As Integer
    Application.ScreenUpdating = False
    Set d = CreateObject("Scripting.Dictionary")
    Set d1 = CreateObject("Scripting.Dictionary")
    Sheet1.Activate
    arr = Range("A1:O59")
    For i = 1 To UBound(arr, 1)
        For j = 1 To UBound(arr, 2)
            If arr(i, j) <> "" Then
                If Not d.exists(arr(i, j)) Then
                    d.Add arr(i, j), 1
                    d1.Add arr(i, j), "SC" & j
                Else
                   计算重复值出现次数
                    d.Item(arr(i, j)) = d.Item(arr(i, j)) + 1
                   存储重复值所在列数
                    d1.Item(arr(i, j)) = d1.Item(arr(i, j)) & "," & "SC" & j
                End If
            End If
        Next
    Next
   输出并排序
    Sheet2.Activate
    Range("a1").Resize(d.Count) = Application.Transpose(d.keys)
    Range("b1").Resize(d.Count) = Application.Transpose(d.items)
    Range("c1").Resize(d1.Count) = Application.Transpose(d1.items)
    Range("a1:b1:c1").Resize(d.Count).Sort key1:=Range("b2"), Order1:=xlDescending
    Set d = Nothing
    Set d1 = Nothing
    Application.ScreenUpdating = True
End Sub

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有