我有一个看起来像这样的表:
Column A | Column B
A 1
B 2
C 3
A 4
我想要做的是获取B列中值的总和,但仅是第一个出现在A列中的每个值的第一个出现。因此,我要获得的结果是(1 + 2 + 3)= 6 (添加前三行,但省略第四行,因为总和中已经包含具有A的行)。
我曾尝试查看Frequency,但是我一直无法弄清楚如何正确使用它来获得所需的结果。
答案 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