且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Excel-在一个列中查找重复项,然后将数量求和到另一列中?

更新时间:2022-11-14 13:09:55

For EXCEL 365 (or the Excel web app):

In C1 enter:

=UNIQUE(A1:A10)

in D1 enter:

=SUMIF(A1:A10,C1#,B1:B10)

EDIT#1:

If VBA is acceptable to you, then try:

Public Function unikue(rng As Range)
    Dim arr, c As Collection, r As Range
    Dim nCall As Long, nColl As Long
    Dim i As Long
    Set c = New Collection
    
    nCall = Application.Caller.Count
    
    On Error Resume Next
        For Each r In rng
            c.Add r.Text, CStr(r.Text)
        Next r
    On Error GoTo 0
    nColl = c.Count
    
    
    If nCall > nColl Then
        ReDim arr(1 To nCall, 1 To 1)
        For i = 1 To nCall
            arr(i, 1) = ""
        Next i
    Else
        ReDim arr(1 To nColl, 1 To 1)
    End If
    
    For i = 1 To nColl
        arr(i, 1) = c.Item(i)
    Next i
    
    unikue = arr
End Function