0

如果有办法将 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我需要对NumberToSum这些值求和。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)不起作用。

注意:数据没有像我的示例中那样排序。

如果我想在 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,"")

然后对辅助列求和,但我希望有一个简单的公式可以在一个单元格中完成所有操作。

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

4

1 回答 1

4

这个公式对我有用:

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

或整列(慢一点):

=SUMPRODUCT(1*(COUNTIF(A:A,A:A)>1),(B:B))
于 2014-02-17T20:57:37.220 回答