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
我的結果將是:
,因爲值1,4,7,10
是重複的,所以我需要總結的9,4,9,1
的NumberToSum
在這種情況下, 。
理想我想沿着其中B是總結的=SumIf(A:A,Count>1,B:B)
線出頭,如果A的內部的計數:A爲> 1
但=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,"")
再總結助手列,但我希望有一個簡單的公式可以在一個單元中完成相同的操作。
我真的只是尋找一個更快的公式,可以輸入到一個單元中,而無需任何額外的計算。
這些愣Excel中,我有超過800,000行處理。是否可以僅在可見單元格上使用此公式?未過濾的行?像'Subtotal()'函數? – user2125348
@ user2125348幾乎所有的公式都會在800k行慢下來,甚至是宏。如果性能非常重要,那麼您可能會考慮使用數據庫,因爲您也接近Excel的行限制(至少是Excel 2007/2010 AFAIK的默認限制) – Jerry
@ user2125348,可能只使用此公式可見的單元格?' - 不,不可能 –