Come calcolare la media ponderata in vba (con esempio)
È possibile utilizzare la seguente sintassi di base per calcolare una media ponderata utilizzando VBA:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
Questo esempio particolare calcola una media ponderata utilizzando le celle nell’intervallo B2:B7 come valori e le celle nell’intervallo C2:C7 come pesi.
La media ponderata viene quindi visualizzata nella cella E2 .
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: calcolare la media ponderata utilizzando VBA
Supponiamo di avere il seguente set di dati in Excel che mostra varie vendite effettuate dai dipendenti di un’azienda:
Supponiamo di voler calcolare la media ponderata del prezzo, utilizzando come valori i valori della colonna Importo e come pesi i valori della colonna Prezzo :
Per fare ciò possiamo creare la seguente macro:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Si noti che la cella E2 contiene un valore di 9.705882 .
Possiamo verificare che ciò sia corretto calcolando manualmente la media ponderata.
Ricorda che utilizziamo la seguente formula per la media ponderata:
Media ponderata = Σw i X i / Σw i
Oro:
- w i = valori di peso
- X i = valori dei dati
Possiamo inserire i valori del nostro set di dati in questa formula per calcolare il prezzo medio ponderato:
- Media ponderata = Σw i X i / Σw i
- Media ponderata = (1*8 + 3*5 + 2*6 + 2*7 + 5*12 + 4*14) / (1+3+2+2+5+4)
- Media dei voti per lo studente A = 9,705882
Questo corrisponde al valore che abbiamo calcolato utilizzando la macro.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come scrivere le funzioni MEDIA.SE e MEDIA.SE
VBA: come scrivere le funzioni SOMMA.SE e SOMMA.FS
VBA: come scrivere le funzioni COUNTIF e COUNTIFS