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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *