我有一個Excel文件,裏面有很多列和很多行。一列,說A有ID號碼。另一列,說G有價格。列A具有重複的ID號碼,但並非所有的號碼都重複相同的次數。有時只是一次,其他時間2,3或幾次。該行的每一列G都有唯一的價格。自動計算不同數字值的平均值
基本上,我需要平均A列給定ID的價格。如果每個ID重複相同的次數,這將是非常簡單的,但因爲他們不是我必須手動做我的平均計算爲每個分組。由於我的電子表格有許多行,這是永遠的。
下面是一個例子(H列是我目前手動計算平均值):
A ... G H
1 1234 3.00 3.50
2 1234 4.00
3 3456 2.25 3.98
4 3456 4.54
5 3456 5.15
11 8890 0.70 0.95
13 8890 1.20
...
所以在上面的例子中,平均價爲ID#1234將是3.50。同樣,ID#3456的平均價格爲3.98,#8890的平均價格爲0.95。
- 注意行5和行11之間缺少行,行12也缺失?那是因爲他們被其他原因過濾掉了。我需要從我的計算中排除這些隱藏的行,並只計算可見行的平均值。
我試着寫一個VBA腳本,將自動計算出這一點,然後打印在列H.每個ID平均值
下面是一些代碼,我認爲:
Sub calcAvg()
Dim rng As Range
Set rng = Range("sheet1!A1:A200003")
For Each Val In rng
Count = 0
V = Val.Value '''V is set equal to the value within the range
If Val.Value = V Then
Sum = Sum + G.Value
V = rng.Offset(1, 0) '''go to next row
Count = Count + 1
Else
'''V = Val.Value '''set value in this cell equal to the value in the next cell down.
avg = Sum/Count
H = avg '''Column G gets the avg value.
End If
Next Val
End Sub
我知道上述代碼存在一些問題。我不太熟悉VBA。此外,這將打印平均每次在同一行。我不知道如何迭代整個行。
這似乎過於複雜。理論上它是一個簡單的問題,但缺少的行和不同數量的ID#重複使得它更加複雜。
如果這可以在Excel函數中完成,那會更好。
任何想法或建議將不勝感激。謝謝。
你有沒有試過我的答案? – matzone