Comment calculer une moyenne pondérée dans Excel ?
Les moyennes pondérées sont couramment utilisées dans les scénarios où différents éléments contribuent de manière inégale au résultat global. Par exemple, lors de l’analyse d’une liste de courses comprenant des prix, des poids et des quantités, la fonction MOYENNE standard d’Excel ne calcule qu’une moyenne arithmétique simple, ignorant ainsi la fréquence ou l’importance relative de chaque article. Or, dans de nombreux contextes professionnels ou budgétaires, il est souvent nécessaire de déterminer une moyenne pondérée — comme le prix moyen par unité en tenant compte des quantités ou des poids — afin que l’impact de chaque élément reflète fidèlement son importance. Cet article explique comment calculer des moyennes pondérées dans Excel, y compris dans des cas soumis à des critères spécifiques, ainsi que des techniques avancées combinant VBA et Tableaux croisés dynamiques pour répondre à des besoins plus complexes ou évolutifs.
Calculer la moyenne pondérée dans Excel
Calculer la moyenne pondérée sous condition dans Excel
Calculer la moyenne pondérée dans Excel
Supposons que vous disposiez d’une liste de courses comme celle illustrée dans la capture d’écran ci-dessous. Alors que la fonction MOYENNE d’Excel calcule un prix moyen sans tenir compte du poids ou de la quantité, une approche plus précise consiste ici à utiliser la moyenne pondérée. Celle-ci reflète bien mieux le coût réel par unité en donnant davantage de poids aux articles dont la quantité ou la fréquence est plus élevée.

Pour calculer le prix moyen pondéré, utilisez une combinaison des fonctions SOMMEPRODet SOMMEcomme suit :
Sélectionnez une cellule vide, par exemple F2, puis saisissez la formule suivante :
=SUMPRODUCT(C2:C18,D2:D18)/SUM(C2:C18) et appuyez sur la touche Entrée pour obtenir le résultat.

Remarque : Dans cette formule, C2:C18 correspond à la colonne Poids, et D2:D18 correspond à la colonne Prix. Ajustez ces plages en fonction de la structure de vos propres données. La fonction SOMMEPROD multiplie chaque poids par le prix correspondant, puis additionne les résultats, tandis que SOMME totalise les poids — ce qui permet d’obtenir une moyenne pondérée exacte. Veillez à utiliser des plages de même longueur et assurez-vous qu’il n’y a ni incohérence ni cellules vides dans vos données, car cela pourrait entraîner des erreurs de calcul.
Si la moyenne pondérée calculée affiche trop ou pas assez de décimales à votre goût, sélectionnez la cellule, puis cliquez sur le bouton Augmenter les décimales
ou sur le bouton Réduire les décimales
, situés sous l’onglet Accueil, pour ajuster le nombre de décimales affichées selon vos besoins.

Si vous obtenez une erreur telle que #VALEUR!, vérifiez que chaque cellule référencée contient une valeur numérique et que les plages sont cohérentes. Évitez également d’inclure une ligne d’en-tête dans votre plage de calcul afin d’obtenir des résultats précis. Lorsque vous travaillez avec de grands jeux de données, envisagez d’utiliser des plages nommées pour plus de clarté et une maintenance facilitée.
Calculer la moyenne pondérée sous condition dans Excel
La formule précédente calcule le prix moyen pondéré pour tous les articles. Dans une analyse pratique, vous souhaiterez peut-être plutôt obtenir la moyenne pondérée pour des catégories spécifiques, par exemple le prix moyen pondéré des pommes uniquement. Dans ce cas, vous pouvez améliorer la formule afin d’y inclure une condition basée sur vos critères.
Pour ce faire, sélectionnez une cellule vide, telle que F8, puis saisissez la formule suivante :
=SUMPRODUCT((B2:B18="Apple")*C2:C18*D2:D18)/SUMIF(B2:B18,"Apple",C2:C18) Appuyez ensuite sur la touche Entrée pour calculer la moyenne pondérée répondant à vos critères spécifiques. Cette formule multiplie chaque couple poids-prix uniquement si l’article correspond à la condition (« Pomme » dans cet exemple), additionne ces produits, puis divise le tout par la somme des poids associés à cet article uniquement.

Remarque : Ici, B2:B18 correspond à la colonne Fruit, C2:C18 au Poids et D2:D18 au Prix. Remplacez « Pomme » par un autre article selon vos besoins. Cette méthode convient parfaitement au filtrage selon un seul critère ; si vous devez appliquer plusieurs critères (par exemple, type de fruit et fournisseur), une colonne auxiliaire ou une formule plus avancée sera nécessaire.
Après avoir appliqué la formule, vous souhaiterez peut-être ajuster le nombre de décimales pour plus de clarté. Sélectionnez la cellule contenant le résultat, puis utilisez les boutons Augmenter les décimales
ou Réduire les décimales
situés sous l’onglet Accueil pour modifier le nombre de décimales affichées.

Si la formule renvoie un résultat inattendu, vérifiez que le critère correspond bien à des éléments présents dans votre plage cible et veillez à l’absence de cellules vides ou de valeurs textuelles dans les colonnes censées contenir des données numériques.
Code VBA – Automatiser le calcul de la moyenne pondérée pour des Plage dynamiques ou plusieurs critères
Dans certaines situations, vous devez fréquemment calculer des moyennes pondérées sur des plages de taille variable, contenant des valeurs manquantes ou nécessitant un filtrage flexible — comme l’application simultanée de plusieurs critères. Plutôt que de mettre à jour manuellement les formules ou les plages, automatiser ce calcul à l’aide d’une macro VBA vous fait gagner du temps et réduit les risques d’erreur, une solution particulièrement efficace avec de grands jeux de données ou des tableaux régulièrement mis à jour.
Voici comment créer et utiliser une macro VBA pour les moyennes pondérées :
1. Cliquez sur Développeur > Visual Basic(ou appuyez sur)Alt + F11) pour ouvrir la fenêtre de l’éditeur Microsoft Visual Basic pour Applications. Ensuite, cliquez sur Insertion > Module, puis collez le code suivant dans la nouvelle fenêtre de module :
Sub WeightedAverageVBA()
Dim rngCriteria As Range
Dim rngWeight As Range
Dim rngValue As Range
Dim criteriaStr As String
Dim totalWeighted As Double
Dim totalWeight As Double
Dim i As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rngCriteria = Application.InputBox("Select the range for criteria (optional, press Cancel to skip):", xTitleId, Type:=8)
criteriaStr = Application.InputBox("Enter criteria for filtering (leave blank for all):", xTitleId, Type:=2)
Set rngWeight = Application.InputBox("Select the Weight (numeric) range:", xTitleId, Type:=8)
Set rngValue = Application.InputBox("Select the Value (e.g. Price) range:", xTitleId, Type:=8)
totalWeighted = 0
totalWeight = 0
If rngCriteria Is Nothing Or criteriaStr = "" Then
For i = 1 To rngWeight.Cells.Count
If IsNumeric(rngWeight.Cells(i).Value) And IsNumeric(rngValue.Cells(i).Value) Then
totalWeighted = totalWeighted + rngWeight.Cells(i).Value * rngValue.Cells(i).Value
totalWeight = totalWeight + rngWeight.Cells(i).Value
End If
Next i
Else
For i = 1 To rngWeight.Cells.Count
If rngCriteria.Cells(i).Value = criteriaStr Then
If IsNumeric(rngWeight.Cells(i).Value) And IsNumeric(rngValue.Cells(i).Value) Then
totalWeighted = totalWeighted + rngWeight.Cells(i).Value * rngValue.Cells(i).Value
totalWeight = totalWeight + rngWeight.Cells(i).Value
End If
End If
Next i
End If
If totalWeight = 0 Then
MsgBox "Weighted average cannot be calculated: total weight is zero.", vbExclamation, xTitleId
Else
MsgBox "Weighted average: " & totalWeighted / totalWeight, vbInformation, xTitleId
End If
End Sub 2. Appuyez sur F5(ou cliquez sur le)
bouton Exécuter) pour lancer l’exécution.
Vous serez invité(e) à sélectionner les plages étape par étape (plage de critères – que vous pouvez ignorer si elle n’est pas nécessaire –, plage des poids et plage des valeurs). Vous pouvez également saisir des critères spécifiques pour filtrer votre calcul ou laisser ce champ vide afin d’intégrer toutes les données. La macro prend en charge des plages dynamiques, ce qui la rend particulièrement pratique si votre tableau s’agrandit ou évolue régulièrement.
Vous obtiendrez enfin une boîte de message affichant le résultat de la moyenne pondérée.
Conseils :
- Cette approche automatise l’analyse répétitive de la moyenne pondérée et peut être facilement étendue pour prendre en charge des options supplémentaires de filtrage ou de sortie.
- Assurez-vous que les plages sélectionnées ont la même longueur et que leurs types de données sont cohérents.
- Incluez une gestion d’erreurs de base, comme illustré, par exemple lorsque aucun poids valide n’est trouvé ou lorsque la somme des poids est nulle.
- Si vous souhaitez appliquer le calcul uniquement aux lignes filtrées ou visibles, vous pouvez encore améliorer le code en utilisant une énumération spécifique des cellules.
Si vous rencontrez des problèmes liés aux autorisations ou à la sécurité des macros, veillez à ce que les macros soient activées dans les paramètres d’Excel avant d’exécuter le code.
Articles connexes :
Moyenne d’une plage avec arrondi dans Excel
Taux de variation moyen dans Excel
Calculer le taux de croissance annuel moyen/composé dans Excel
Meilleurs outils de productivité Office
Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile
- Activez l’édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50 % et vous fait économiser des centaines de clics de souris chaque jour !
Tous les compléments Kutools. Un seul installateur
Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.
- Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
- Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
- Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
- Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
- Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels