Comment calculer la moyenne pondérée en VBA (avec exemple)



Vous pouvez utiliser la syntaxe de base suivante pour calculer une moyenne pondérée à l’aide de VBA :

Sub FindWeightedAverage()

Range("E2") = _
    WorksheetFunction.SumProduct(Range("B2:B7"), Range("C2:C7")) / _
    WorksheetFunction.Sum(Range("C2:C7"))

End Sub

Cet exemple particulier calcule une moyenne pondérée en utilisant les cellules de la plage B2:B7 comme valeurs et les cellules de la plage C2:C7 comme pondérations.

La moyenne pondérée est ensuite affichée dans la cellule E2 .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : calculer la moyenne pondérée à l’aide de VBA

Supposons que nous ayons l’ensemble de données suivant dans Excel qui montre diverses ventes réalisées par les employés d’une entreprise :

Supposons que nous souhaitions calculer la moyenne pondérée du prix, en utilisant les valeurs de la colonne Montant comme valeurs et les valeurs de la colonne Prix comme pondérations :

Nous pouvons créer la macro suivante pour ce faire :

Sub FindWeightedAverage()

Range("E2") = _
    WorksheetFunction.SumProduct(Range("B2:B7"), Range("C2:C7")) / _
    WorksheetFunction.Sum(Range("C2:C7"))

End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Notez que la cellule E2 contient une valeur de 9.705882 .

Nous pouvons vérifier que cela est correct en calculant manuellement la moyenne pondérée.

Rappelons que nous utilisons la formule suivante pour la moyenne pondérée :

Moyenne pondérée = Σw i X i / Σw i

où:

  • w i = les valeurs de poids
  • X i = les valeurs des données

Nous pouvons intégrer les valeurs de notre ensemble de données dans cette formule pour calculer la moyenne pondérée du prix :

  • Moyenne pondérée = Σw i X i / Σw i
  • Moyenne pondérée = (1*8 + 3*5 + 2*6 + 2*7 + 5*12 + 4*14) / (1+3+2+2+5+4)
  • Moyenne pondérée pour l’étudiant A = 9,705882

Cela correspond à la valeur que nous avons calculée à l’aide de la macro.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment écrire des fonctions AVERAGEIF et AVERAGEIFS
VBA : Comment écrire des fonctions SUMIF et SUMIFS
VBA : Comment écrire les fonctions COUNTIF et COUNTIFS

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *