数据在ListView里:
数据名称  数据
a        37 
b        64 
c        64 
d        43
e        64
f        64
g        43
h        64
i        43 
分析上述数据,找出相同数据并汇总数据  相同数据总数   数据名称
37        1         a
64        5        bcefh
……    ………        ………

解决方案 »

  1.   

    家里没有vb用vba作了一个Private Sub CommandButton1_Click()
        Dim i As Integer
        Dim j As Integer
        Dim n As Integer
        Dim blnJ As Boolean
        Dim a() As String
        
        a = Split("37,64,64,43,64,64,43,64,43", ",")
        
        n = 0
        For i = 0 To UBound(a)
            blnJ = False
            For j = 1 To n
                If a(i) = Cells(j, 1) Then
                    Cells(j, 1) = a(i)
                    Cells(j, 2) = Cells(j, 2) + 1
                    Cells(j, 3) = Cells(j, 3) & i
                    blnJ = True
                    Exit For
                End If
            Next j
            If Not blnJ Then
                n = n + 1
                Cells(n, 1) = a(i)
                Cells(n, 2) = Cells(n, 2) + 1
                Cells(n, 3) = Cells(n, 3) & i
            End If
        Next i
        
    End Sub
      

  2.   

    Private Sub Command1_Click()
    l = 1
    For i = 1 To ListView1.ListItems.Count
    If ListView1.ListItems(i).Text <> "" Then
    k = 1
    s = ListView1.ListItems(i).Key & ","
    For j = i + 1 To ListView1.ListItems.Count
    If ListView1.ListItems(i).Text = ListView1.ListItems(j).Text Then
    k = k + 1
    s = s & ListView1.ListItems(j).Key & ","
    ListView1.ListItems(j).Text = ""
    End If
    Next
    ListView2.ListItems.Add , , ListView1.ListItems(i).Text
    ListView2.ListItems(l).ListSubItems.Add 1, , k
    ListView2.ListItems(l).ListSubItems.Add 2, , s
    l = l + 1
    End If
    Next
    ListView1.ListItems.Clear
    ListView1.View = lvwReport
             With ListView1
            .ListItems.Add , "a", "37"
            .ListItems.Add , "b", "64"
            .ListItems.Add , "c", "64"
            .ListItems.Add , "d", "43"
            .ListItems.Add , "e", "64"
            .ListItems.Add , "f", "64"
            .ListItems.Add , "g", "43"
            .ListItems.Add , "h", "64"
            .ListItems.Add , "i", "43"
          End With
         For i = 1 To ListView1.ListItems.Count
    ListView1.ListItems(i).ListSubItems.Add , , ListView1.ListItems(i).Key
    Next
    End SubPrivate Sub Form_Load()
    ListView1.ColumnHeaders.Add , , "数据"
    ListView1.ColumnHeaders.Add , , "数据名称"
    ListView1.View = lvwReport
             With ListView1
             .ListItems.Add , "a", "37"
            .ListItems.Add , "b", "64"
            .ListItems.Add , "c", "64"
            .ListItems.Add , "d", "43"
            .ListItems.Add , "e", "64"
            .ListItems.Add , "f", "64"
            .ListItems.Add , "g", "43"
            .ListItems.Add , "h", "64"
            .ListItems.Add , "i", "43"
          End With
         ListView2.ColumnHeaders.Add , , "数据"
    ListView2.ColumnHeaders.Add , , "相同数据总数"
    ListView2.ColumnHeaders.Add , , "数据名称 "ListView2.View = lvwReport
    For i = 1 To ListView1.ListItems.Count
    ListView1.ListItems(i).ListSubItems.Add , , ListView1.ListItems(i).Key
    Next
        End Sub