[英]Calculate average value in 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出現的次數。 然后,您可以將sumif列除以countif列以獲得平均值。
一旦有了這個想法,就可以將公式合並為一個單元格,如下所示
= sumif(“ ID RANGE”,“ ID”,“ sum Range”)/ Countif(“ ID_RANGE”,“ ID”)
這將是生成數據透視表的手動方法,可以使用vba生成公式的表。
Sheet1.range(“ A1:A100”)。value =“ =在此處輸入公式”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.