获取只有重复值的总和

如果有一种方法使用sumif结合countif?

例如,如果我有

TransactionNo|NumberToSum 1 | 1 | 9 2 | 6 3 | 3 4 | 4 | 4 5 | 6 6 | 4 7 | 7 | 9 8 | 7 9 | 4 10 | 10 | 1 11 | 3 12 | 6 

我的结果是: 23

因为值1,4,7,10是重复的,所以我需要在这种情况下总结那些9,4,9,1

理想情况下,我想沿着=SumIf(A:A,Count>1,B:B)

如果A:A内部的A的计数大于1,则B相加。

但是=SUMIF(A:A,COUNT(A:A)>1,B:B)不起作用。

注意:数据不会按照我的示例中的方式sorting。

如果我想在VBA中做到这一点,快速的方法可能是:

 Sub sumdups() Dim rng As Range Dim rng2 As Range Dim Sum As Long Set rng = [A2:A17] For Each rng2 In rng If WorksheetFunction.CountIf(Range("A1:A17"), rng2.Value) > 1 Then Sum = Sum + rng2.Offset(0, 1).Value End If Next rng2 End Sub 

我试过的另一个选项是添加一个公式的列

  =IF(COUNTIF(A:A,A2)>1,B2,"") 

然后总结帮手列,但我希望有一个简单的公式,可以在一个单元格中做同样的事情。

我真的只是寻找一个更快的公式,可以在一个单元格中input,而不需要任何额外的计算。

这个公式适用于我:

 =SUMPRODUCT(1*(COUNTIF(A1:A100,A1:A100)>1),(B1:B100)) 

或整列(慢一点):

 =SUMPRODUCT(1*(COUNTIF(A:A,A:A)>1),(B:B))