KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment calculer une moyenne pondérée dans Excel ?

AuteurKelly Date de modification

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

Code VBA – Automatiser le calcul de la moyenne pondérée pour des plages dynamiques ou plusieurs critères


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.

une capture d’écran montrant les données d’origine

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.

une capture d’écran illustrant l’utilisation de la formule pour calculer la moyenne pondérée

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écimalesune capture d’écran du bouton Réduire les décimales ou sur le bouton Réduire les décimalesune capture d’écran du bouton Réduire les décimales, situés sous l’onglet Accueil, pour ajuster le nombre de décimales affichées selon vos besoins.

une capture d’écran de la sélection d’un des types de décimales

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.

une capture d’écran illustrant l’utilisation d’une formule pour calculer la moyenne pondérée selon des critères donnés

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écimalesune capture d’écran du bouton Réduire les décimales2 ou Réduire les décimalesune capture d’écran du bouton Réduire les décimales2 situés sous l’onglet Accueil pour modifier le nombre de décimales affichées.

une capture d’écran de la sélection d’un des types de décimales2

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 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 :


Meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générez du code|  Créez formules personnalisées  |  Analysez des données et générez des graphiques|  Appelez Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheValeurs avec critères multiples  |  RechercheValeurs avec valeurs multiples  |   RechercheValeurs dans plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple....
Gestionnaire de colonnes:Ajouter un nombre précis de colonnes|Déplacer des colonnes|Basculer la visibilité des colonnes masquées|Comparer des plages et des colonnes...
Fonctionnalités vedettes:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
… et bien plus encore… et plus encore:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|Fusionner et scinder   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans la langue de votre choix – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

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.

ExcelWordOutlookTabsPowerPoint
  • 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