在单独的列中总计仅包含值的第一个出现的行

时间:2019-07-26 15:17:06

标签: excel excel-formula

我有一个看起来像这样的表:

Column A | Column B
    A        1
    B        2
    C        3
    A        4

我想要做的是获取B列中值的总和,但仅是第一个出现在A列中的每个值的第一个出现。因此,我要获得的结果是(1 + 2 + 3)= 6 (添加前三行,但省略第四行,因为总和中已经包含具有A的行)。

我曾尝试查看Frequency,但是我一直无法弄清楚如何正确使用它来获得所需的结果。

1 个答案:

答案 0 :(得分:5)

使用SUMPRODUCT和MATCH:

Sub ColumnDuplicates()
Dim lastRow As Long
Dim matchFoundIndex As Long
Dim iCntr As Long

lastRow = Range("A65000").End(xlUp).Row
Set oDictionary = CreateObject("Scripting.Dictionary")
For iCntr = 1 To lastRow
    If Cells(iCntr, 1) <> "" Then
        If oDictionary.Exists(Cells(iCntr, 1).Value) Then
            MsgBox ("There are duplicates in Column A")
            Exit Sub
        Else 
            oDictionary.Add Cells(iCntr, 1).Value, Cells(iCntr, 1).Value
        End If
    End If
Next
MsgBox ("No Duplicates in Column A")
End Sub

enter image description here