Vba'da ağırlıklı ortalama nasıl hesaplanır (örnekle)
VBA’yı kullanarak ağırlıklı ortalamayı hesaplamak için aşağıdaki temel sözdizimini kullanabilirsiniz:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
Bu özel örnek, B2:B7 aralığındaki hücreleri değer olarak ve C2:C7 aralığındaki hücreleri ağırlık olarak kullanarak ağırlıklı ortalamayı hesaplar.
Ağırlıklı ortalama daha sonra E2 hücresinde görüntülenir.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA Kullanarak Ağırlıklı Ortalamayı Hesaplama
Diyelim ki Excel’de bir şirketin çalışanlarının yaptığı çeşitli satışları gösteren aşağıdaki veri setine sahibiz:
Tutar sütunundaki değerleri değer olarak ve Fiyat sütunundaki değerleri ağırlık olarak kullanarak fiyatın ağırlıklı ortalamasını hesaplamak istediğimizi varsayalım:
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
E2 hücresinin 9.705882 değerini içerdiğine dikkat edin.
Ağırlıklı ortalamayı manuel olarak hesaplayarak bunun doğru olduğunu doğrulayabiliriz.
Ağırlıklı ortalama için aşağıdaki formülü kullandığımızı unutmayın:
Ağırlıklı ortalama = Σw i X i / Σw i
Altın:
- w i = ağırlık değerleri
- X i = veri değerleri
Ağırlıklı ortalama fiyatı hesaplamak için veri setimizdeki değerleri bu formüle ekleyebiliriz:
- Ağırlıklı ortalama = Σw i X i / Σw i
- Ağırlıklı ortalama = (1*8 + 3*5 + 2*6 + 2*7 + 5*12 + 4*14) / (1+3+2+2+5+4)
- A öğrencisi için not ortalaması = 9,705882
Bu, makroyu kullanarak hesapladığımız değerle eşleşir.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: EĞER ORTALAMA ve EĞER ORTALAMA işlevleri nasıl yazılır
VBA: ETOPLA ve ETOPLA işlevleri nasıl yazılır
VBA: COUNTIF ve COUNTIFS işlevleri nasıl yazılır?