MOYENNE.SI.ENS : Calculer une moyenne avec plusieurs conditions en Excel
=MOYENNE.SI.ENS(moyenne_plage; plage_critère1; critère1; ...)La formule MOYENNE.SI.ENS est l'une des fonctions les plus puissantes d'Excel pour l'analyse de données conditionnelles. Elle permet de calculer la moyenne d'une plage de cellules en appliquant plusieurs critères simultanément, ce qui la rend indispensable pour les analyses complexes en entreprise. Contrairement à MOYENNE.SI qui ne gère qu'un seul critère, MOYENNE.SI.ENS offre une flexibilité remarquable pour traiter des scénarios réalistes où plusieurs conditions doivent être satisfaites. Cette formule est particulièrement utile dans les domaines du contrôle de gestion, de la gestion des ressources humaines, de l'analyse commerciale et du reporting financier. Elle vous permet de répondre à des questions précises comme : « Quel est le salaire moyen des employés de plus de 30 ans travaillant dans le département ventes ? » ou « Quel est le chiffre d'affaires moyen par transaction pour les produits premium vendus en région Île-de-France ? ». Maîtriser MOYENNE.SI.ENS vous fera gagner un temps considérable dans vos analyses et vous permettra de créer des rapports dynamiques et précis sans recourir à des solutions plus complexes comme les tableaux croisés dynamiques.
Syntaxe et paramètres
La syntaxe de MOYENNE.SI.ENS s'articule autour d'une structure modulable : =MOYENNE.SI.ENS(moyenne_plage; plage_critère1; critère1; [plage_critère2; critère2]; ...). Le premier paramètre, « moyenne_plage », est la plage contenant les valeurs dont vous souhaitez calculer la moyenne. C'est obligatoirement une plage numérique. Les paramètres suivants fonctionnent par paires : « plage_critère » définit la zone à évaluer, tandis que « critère » spécifie la condition à appliquer. Vous pouvez ajouter jusqu'à 127 paires critères supplémentaires, offrant une flexibilité exceptionnelle. Les critères peuvent être des valeurs exactes ("Ventes"), des comparaisons numériques (">=1000"), ou des expressions avec caractères génériques ("*Excel*"). Un point crucial : toutes les plages doivent avoir les mêmes dimensions pour que la formule fonctionne correctement. Si vous avez 100 lignes de données, chaque plage_critère doit contenir 100 cellules. La formule applique une logique ET entre les critères : seules les lignes satisfaisant TOUS les critères sont incluses dans le calcul de la moyenne. Les valeurs vides ou les cellules contenant du texte dans moyenne_plage sont ignorées, ce qui est particulièrement utile pour nettoyer vos données.
average_rangecriteria_range1criteria1Exemples pratiques
Calcul du salaire moyen par département et ancienneté
=MOYENNE.SI.ENS(C:C;B:B;"Ventes";D:D;">=3")Cette formule évalue la colonne B (Département) pour trouver "Ventes" ET la colonne D (Ancienneté) pour les valeurs >= 3. Seules les lignes satisfaisant les deux conditions contribuent au calcul de moyenne des salaires en colonne C.
Moyenne du chiffre d'affaires par région et catégorie produit
=MOYENNE.SI.ENS(D:D;B:B;"Île-de-France";C:C;"Premium")La formule filtre les transactions selon deux critères : région Île-de-France ET catégorie Premium. Elle calcule ensuite la moyenne des montants (colonne D) pour ces transactions uniquement.
Moyenne des notes avec critères multiples (niveau scolaire)
=MOYENNE.SI.ENS(D:D;B:B;"3ème";C:C;"Mathématiques")Cette formule extrait les notes (colonne D) uniquement pour les élèves de 3ème (colonne B) en Mathématiques (colonne C), puis calcule leur moyenne.
Points clés à retenir
- MOYENNE.SI.ENS calcule une moyenne conditionnelle avec plusieurs critères appliqués en logique ET
- La syntaxe requiert des paires critères : chaque plage_critère doit avoir une condition associée
- Toutes les plages doivent avoir les mêmes dimensions pour éviter l'erreur #VALUE!
- Les critères acceptent les opérateurs (>=, <, <>, =) et les caractères génériques (* et ?)
- Pour les analyses très complexes, préférez SOMMEPROD ou les tableaux croisés dynamiques
Astuces de pro
Utilisez des plages explicites (A2:A1000) plutôt que des colonnes entières (A:A) pour améliorer les performances, surtout avec de gros fichiers (>100 000 lignes).
Impact : Réduction du temps de calcul jusqu'à 50% sur les classeurs volumineux et meilleure réactivité du logiciel.
Créez des cellules de critères séparées (ex: B1=Ventes, C1=>=2000) et référencez-les dans la formule plutôt que d'encoder les valeurs en dur. Cela rend votre tableau interactif et facilement modifiable.
Impact : Flexibilité maximale : changez les critères une fois et tous les calculs se mettent à jour automatiquement. Parfait pour les tableaux de bord.
Combinez MOYENNE.SI.ENS avec SOMMEPROD pour des analyses très complexes : =SOMMEPROD((B:B="Ventes")*(D:D>5000)*C:C)/SOMMEPROD((B:B="Ventes")*(D:D>5000)*1) calcule une moyenne avec une logique ET personnalisée.
Impact : Accès à des analyses impossibles avec MOYENNE.SI.ENS seul, notamment les conditions OU ou les calculs multi-colonnes.
Pour déboguer une formule complexe, divisez-la en étapes : créez d'abord COUNTIFS pour vérifier le nombre de lignes correspondant aux critères, puis testez MOYENNE.SI.ENS.
Impact : Identification rapide des erreurs de critères et validation que vos conditions fonctionnent comme prévu avant de valider la formule complète.
Combinaisons utiles
MOYENNE.SI.ENS + IFERROR pour gestion des erreurs
=IFERROR(MOYENNE.SI.ENS(C:C;B:B;"Ventes";D:D;">5000");"Aucune donnée")Combine MOYENNE.SI.ENS avec IFERROR pour afficher un message personnalisé au lieu d'une erreur #DIV/0! quand aucune donnée ne correspond aux critères. Très utile pour les tableaux de bord professionnels.
MOYENNE.SI.ENS + TEXTE pour formater les critères
=MOYENNE.SI.ENS(C:C;B:B;TEXTE(A1;"mmmm");D:D;TEXTE(E1;"AAAA"))Utilise TEXTE pour convertir des dates en mois/année et les comparer avec des critères textuels. Permet de créer des critères dynamiques basés sur des cellules formatées.
MOYENNE.SI.ENS + INDIRECT pour références dynamiques
=MOYENNE.SI.ENS(INDIRECT(F1);INDIRECT(B:B);G1;INDIRECT(D:D);H1)Combine INDIRECT pour créer des formules entièrement paramétrables. Les références de plages et critères viennent de cellules, permettant de créer des outils d'analyse flexibles et réutilisables.
Erreurs courantes
Cause : Une plage_critère référence des cellules supprimées ou invalides. Par exemple : =MOYENNE.SI.ENS(C:C;B:B;"Ventes";E:E;">=2000") où la colonne E a été supprimée après la création de la formule.
Solution : Vérifiez que toutes les plages existent encore dans le classeur. Utilisez des références nommées pour plus de stabilité. Recréez la formule en pointant correctement les cellules.
Cause : Un critère contient une syntaxe invalide ou incompatible. Exemple : =MOYENNE.SI.ENS(C:C;D:D;>=2000) sans guillemets autour du critère numérique avec opérateur, ou mélange de types de données incompatibles.
Solution : Encadrez les critères avec opérateurs entre guillemets : ">=2000" au lieu de >=2000. Vérifiez que les types de données correspondent (texte vs nombre). Utilisez le formateur de formule (Ctrl+Maj+U) pour identifier l'erreur.
Cause : Aucune ligne ne satisfait les critères spécifiés, donc aucune valeur n'existe pour calculer la moyenne. Exemple : =MOYENNE.SI.ENS(C:C;B:B;"Marketing";D:D;">10000") alors que Marketing n'a pas de transactions > 10000.
Solution : Vérifiez l'orthographe exacte des critères textuels (majuscules/minuscules). Assouplissez les conditions (ex: ">=5000" au lieu de ">10000"). Utilisez MOYENNE.SI.ENS avec SIERROR pour gérer ce cas : =IFERROR(MOYENNE.SI.ENS(...);"Aucune donnée")
Checklist de dépannage
- 1.Vérifiez que TOUTES les plages ont exactement les mêmes dimensions (même nombre de lignes et colonnes)
- 2.Contrôlez l'orthographe exacte des critères textuels, notamment les majuscules/minuscules et les espaces superflus
- 3.Encadrez les critères avec opérateurs entre guillemets : ">=1000" et non >=1000
- 4.Testez chaque critère individuellement avec COUNTIFS pour confirmer qu'au moins une ligne correspond
- 5.Vérifiez que la plage moyenne_plage contient bien des nombres (pas du texte) et que les cellules vides sont acceptables
- 6.Utilisez le mode édition (F2) et surlignez les plages pour confirmer visuellement qu'elles couvrent les bonnes données
Cas particuliers
Une plage_critère contient des valeurs vides
Comportement : Les cellules vides ne correspondent à aucun critère texte (ex: "Ventes"), mais correspondent à un critère vide (""). Les lignes avec cellules vides sont généralement exclues du calcul.
Solution : Utilisez un critère explicite vide : =MOYENNE.SI.ENS(C:C;B:B;"") pour inclure les lignes avec B vide. Ou filtrez-les avec <>"" pour les exclure.
Comportement cohérent avec COUNTIFS et SUMIFS
La plage moyenne_plage contient du texte au lieu de nombres
Comportement : Excel ignore les cellules textuelles lors du calcul de la moyenne. Si TOUTES les cellules correspondant aux critères contiennent du texte, retour #DIV/0!.
Solution : Vérifiez le format des données (Format > Cellules > Nombre). Convertissez le texte en nombres avec VALEUR() ou nettoyez les données source.
Les valeurs vides sont aussi ignorées, ce qui est normal
Critères avec caractères spéciaux ou accents
Comportement : Excel traite les accents comme différents (é ≠ e). Les caractères spéciaux (~, *, ?) ont des significations particulières.
Solution : Pour un astérisque littéral, utilisez ~*. Pour les accents, assurez-vous que la source et le critère utilisent le même encodage. Testez avec EXACT() si doute.
Utilisez RECHERCHE() avec EXACT() pour une correspondance sensible aux accents si nécessaire
Limitations
- •MOYENNE.SI.ENS ne supporte que la logique ET entre critères. Pour une logique OU (ex: "Ventes" OU "Marketing"), vous devez utiliser SOMMEPROD ou additionner plusieurs MOYENNE.SI.ENS
- •Limite théorique de 127 paires critères, mais au-delà de 5-6 critères, la formule devient très complexe et peu performante. Préférez les tableaux croisés dynamiques pour les analyses multi-dimensionnelles
- •Les critères textuels sont insensibles à la casse par défaut ("ventes" = "VENTES"). Si vous avez besoin d'une distinction casse/minuscule, SOMMEPROD avec EXACT() est nécessaire
- •Pas de support natif pour les critères basés sur des formules complexes. Pour des conditions très avancées (ex: moyenne si le mois de la date = janvier), utilisez SOMMEPROD ou des colonnes d'aide
Alternatives
Compatibilité
✓ Excel
Depuis 2007
=MOYENNE.SI.ENS(moyenne_plage; plage_critère1; critère1; [plage_critère2; critère2]; ...)✓Google Sheets
=AVERAGEIFS(moyenne_plage; plage_critère1; critère1; plage_critère2; critère2; ...) - Notez le S finalGoogle Sheets utilise AVERAGEIFS (avec S) au lieu de MOYENNE.SI.ENS. La syntaxe est identique, juste le nom change. Les deux fonctions sont entièrement compatibles.
✓LibreOffice
=MOYENNEIFS(moyenne_plage; plage_critère1; critère1; plage_critère2; critère2; ...) - Syntaxe française