获取只有重复值的总和
如果有一种方法使用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))