Hoe u het gewogen gemiddelde in vba kunt berekenen (met voorbeeld)
U kunt de volgende basissyntaxis gebruiken om een gewogen gemiddelde te berekenen met VBA:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
In dit specifieke voorbeeld wordt een gewogen gemiddelde berekend met behulp van cellen in het bereik B2:B7 als waarden en cellen in het bereik C2:C7 als gewichten.
Het gewogen gemiddelde wordt vervolgens weergegeven in cel E2 .
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Bereken het gewogen gemiddelde met VBA
Laten we zeggen dat we de volgende gegevensset in Excel hebben die verschillende verkopen laat zien die zijn gedaan door werknemers van een bedrijf:
Stel dat we het gewogen gemiddelde van de prijs willen berekenen, waarbij we de waarden in de kolom Bedrag als waarden gebruiken en de waarden in de kolom Prijs als gewichten:
We kunnen hiervoor de volgende macro maken:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Merk op dat cel E2 de waarde 9.705882 bevat.
We kunnen verifiëren dat dit correct is door het gewogen gemiddelde handmatig te berekenen.
Bedenk dat we de volgende formule gebruiken voor het gewogen gemiddelde:
Gewogen gemiddelde = Σw i X i / Σw i
Goud:
- w i = gewichtswaarden
- X i = gegevenswaarden
We kunnen de waarden uit onze dataset in deze formule pluggen om de gewogen gemiddelde prijs te berekenen:
- Gewogen gemiddelde = Σw i X i / Σw i
- Gewogen gemiddelde = (1*8 + 3*5 + 2*6 + 2*7 + 5*12 + 4*14) / (1+3+2+2+5+4)
- Puntgemiddelde voor student A = 9,705882
Dit komt overeen met de waarde die we met de macro hebben berekend.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: Hoe AVERAGEIF- en AVERAGEIFS-functies te schrijven
VBA: SUMIF- en SUMIFS-functies schrijven
VBA: Hoe COUNTIF- en COUNTIFS-functies te schrijven