我需要計算VBA中不同數字的平均值,但它已變得複雜,我不確定接下來要做什麼。在VBA中計算平均值
我轉向谷歌尋找潛在的解決方案,但我沒有發現任何相關的問題。
這裏是我的表:
每個ID:
- ...是一個非唯一編號。
- ...有一個關聯的值。
每個ID的平均值需要在VBA中計算。
例
- 與 'ID1' 的ID的值是2,3和4,因此具有3個
- 的值的平均值與 'ID2' 的ID均爲4,所以有4
- 平均...
我現在要麼一整列計算平均值或簡單重複的值。
我將非常感謝您的幫助和建議。
我需要計算VBA中不同數字的平均值,但它已變得複雜,我不確定接下來要做什麼。在VBA中計算平均值
我轉向谷歌尋找潛在的解決方案,但我沒有發現任何相關的問題。
這裏是我的表:
每個ID:
每個ID的平均值需要在VBA中計算。
例
我現在要麼一整列計算平均值或簡單重複的值。
我將非常感謝您的幫助和建議。
不夠公平。如果你有你的心臟上的VBA的解決方案設置這一項應該做的伎倆(你的例子)......
Sub Av()
Dim LastRow As Long
LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
Cells(i, 3).Value = Application.WorksheetFunction.SumIf(Range("A2:A" & LastRow), Range("A" & i), Range("B2:B" & LastRow))/_
Application.WorksheetFunction.CountIf(Range("A2:A" & LastRow), Range("A" & i))
Next
End Sub
該解決方案將在您發佈的例子保存您的錶行(非由ID是唯一的)
太棒了。非常感謝你。它工作完美。現在我可以結束我的計算:) –
如果你不想使用數據透視表作爲wilson88建議你可以嘗試以下方法,
創建從沒有重複的ID在它的數據集的列表。
在此列表旁邊的列中,您可以執行sumif公式以從您的每個ID的數據集中獲得總和。
然後在此旁邊的列中,您可以使用countif公式來計算用戶ID出現的次數。然後你可以通過countif列來劃分sumif列來獲得平均值。
一旦你得到的這個想法,你可以將公式合併爲一個單元格爲以下
= SUMIF(「ID範圍」,「ID」,「總和範圍」)/ COUNTIF(「ID_RANGE」 「ID」)
這將是生成數據透視表的手動方式,您可以使用vba來生成公式。
Sheet1.range(「A1:A100」)。值=「= enterformulahere」
嗨。你有沒有考慮使用數據透視表來做到這一點?當您在值列中拖動時,只需將值字段設置更改爲'平均值'... – 2016-11-30 13:02:31
@ wilson88謝謝。我會盡量使用它。但根據我的任務,我需要在VBA中做到這一點。我有幾個我在VBA中做過的計算,這個也應該是其中的一部分。 –
嗨,您可以編寫VBA創建數據透視表,如@ wilson88所示,並添加使用VBA的vlookup公式,該公式將數據透視表中的平均值拉到您希望的列。 –