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,"")

次に、ヘルパー列を合計しますが、1 つのセルで同じことをすべて実行できる単純な数式があることを願っています。

追加の計算を必要とせずに、単一のセルに入力できるより高速な数式を本当に探しています。

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 に答える