Qu'est-ce que la fonction BDMOYENNE ?
Tu sors BDMOYENNE (DAVERAGE en anglais) quand un seul jeu de critères doit nourrir plusieurs indicateurs à la fois, moyenne, max, min, comptage, et que tu veux les garder synchronisés sans réécrire le filtre dans chaque formule.
Contrairement à MOYENNE.SI.ENS où tu codes les critères directement dans la formule, BDMOYENNE lit les critères depuis une mini-table. Cela te permet de modifier tes critères sans toucher à la formule, idéal pour les rapports dynamiques ou les tableaux de bord professionnels.
Syntaxe
=BDMOYENNE(base_de_données; champ; critères)Clique sur un argument pour aller à son explication.

Comprendre chaque paramètre de la fonction BDMOYENNE
Les trois arguments s'enchaînent toujours dans le même ordre : d'abord la plage de ta table (en-têtes compris), puis la colonne à moyenner, enfin la zone de critères. Aucun n'est facultatif, et c'est la troisième pièce qui fait toute la différence : tes filtres vivent dans une mini-table à part, pas dans la formule.
Le champ à moyenner se désigne au choix par son nom d'en-tête entre guillemets ("Salaire"), par son numéro de colonne, ou par une référence de cellule, le nom restant le plus lisible.
base_de_données
: la plage complète de ta table de données, incluant obligatoirement la ligne d'en-têtesPar exemple A1:E100 si ta table va de la colonne A à E et contient 99 lignes de données plus 1 ligne d'en-tête. Les en-têtes doivent être uniques et en première ligne de la plage.
Attention : N'oublie jamais la ligne d'en-têtes dans ta plage, sinon Excel ne pourra pas identifier les colonnes correctement.
champ
: la colonne sur laquelle tu veux calculer la moyenneTu peux l'indiquer de trois façons : soit par le nom de l'en-tête entre guillemets comme "Salaire", soit par le numéro de colonne dans ta base comme 3 (pour la 3ème colonne), soit par une référence de cellule contenant l'en-tête comme F1. La méthode par nom est la plus lisible.
critères
: une petite table séparée qui contient tes conditions de filtrageElle doit avoir au minimum deux lignes : la première avec les noms des colonnes (exactement comme dans ta base), et les lignes suivantes avec les valeurs à filtrer. Par exemple, G1:H2 pourrait contenir "Région" et "Nord" pour ne calculer que la moyenne de la région Nord.
Tu peux combiner plusieurs critères sur une même ligne (ET logique) ou sur des lignes différentes (OU logique).

Exemples pratiques pas à pas
Comment calculer une moyenne selon un critère avec la fonction BDMOYENNE
Tu prépares les objectifs du trimestre et tu as besoin du niveau réel d'une vente sur le Nord, pas d'une impression. Tes quatorze vendeurs sont listés avec leur région et le montant qu'ils ont réalisé, et tu veux la moyenne du Nord seul, sans extraire les lignes dans un coin de la feuille. La fonction BDMOYENNE lit une zone de critères posée à côté du tableau et calcule la moyenne des seules lignes qui y répondent.
- 1Dans une cellule, écris
=BDMOYENNE(. - 2En 1er argument : sélectionne la table où chercher,
A1:C15. La ligne d'en-têtes est comprise dans la plage, et ce n'est pas une maladresse de sélection. La fonction a besoin des titresVendeur,RégionetVentespour savoir quelle colonne porte quel nom. - 3En 2ᵉ argument : écris le nom de la colonne à moyenner,
"Ventes". Il se met entre guillemets et s'orthographie à l'identique de l'en-tête de la colonne C. Seules les valeurs de cette colonne seront additionnées puis divisées. - 4En 3ᵉ argument : sélectionne la zone de critères préparée à côté du tableau,
E1:E2. Elle tient en deux cellules, avec l'en-têteRégionrecopié en E1 et la valeurNordjuste en dessous. ÉcrisSudà la place deNordet la moyenne bascule sur le Sud, sans que la formule change d'un caractère. - 5Ferme la parenthèse et appuie sur Entrée.
=BDMOYENNE(A1:C15; "Ventes"; E1:E2)Comment une cellule vide change la moyenne de la fonction BDMOYENNE
Le conseil de classe est demain et tu dois annoncer la moyenne de la 3e B au dernier contrôle. Ton relevé liste chaque élève avec sa classe et sa note, sauf qu'un élève était absent ce jour-là et que sa case est restée vide, ce qui change la façon dont le calcul se fait. La fonction BDMOYENNE filtre sur la classe et traite ce vide toute seule, encore faut-il savoir ce qu'elle en fait.
- 1Dans une cellule, écris
=BDMOYENNE(. - 2En 1er argument : sélectionne le relevé complet,
A1:C7. Les en-têtesÉlève,ClasseetNotefont partie de la plage, sans quoi la fonction n'a aucun moyen de reconnaître les colonnes. - 3En 2ᵉ argument : écris le nom de la colonne dont tu veux la moyenne,
"Note". La fonction ne retient que les nombres de cette colonne, et une case restée vide en est écartée sans le moindre message. - 4En 3ᵉ argument : sélectionne la zone de critères,
E1:E2. Tu y as recopié l'en-têteClasseen E1 et écrit la valeur3e Ben E2, ce qui retient quatre élèves. Le diviseur, lui, ne comptera que les notes réellement saisies, et c'est cette distinction qu'il faut avoir en tête avant d'annoncer un chiffre. - 5Ferme la parenthèse et appuie sur Entrée.
=BDMOYENNE(A1:C7; "Note"; E1:E2)3e B passent le filtre, mais la fonction BDMOYENNE n'en moyenne que trois : la case vide de Yanis Combe est ignorée, au numérateur comme au diviseur, d'où (14 + 16 + 12) / 3 = 14. La nuance est loin d'être anodine : en écrivant un 0 à la place du vide, le diviseur passerait à 4 et la moyenne s'effondrerait à 10,5. Un absent n'est pas un zéro.Comment éviter l'erreur #DIV/0! de la fonction BDMOYENNE
Ton tableau de bord laisse chaque responsable taper la ville qu'il veut suivre dans une cellule. Le jour où quelqu'un saisit une ville sans boutique, ou l'écrit de travers, ta moyenne se change en #DIV/0! et l'erreur se propage à tous les calculs posés dessus. La fonction BDMOYENNE ne peut rien moyenner quand aucune ligne ne correspond, donc c'est à toi de prévoir le message.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris le calcul à surveiller et referme-le,
BDMOYENNE(A1:C6; "Panier moyen"; E1:E2). La plage inclut la ligne d'en-têtes, et la zone de critèresE1:E2porte l'en-têteVilleen E1 puis, en E2, la ville que tes collègues remplissent librement. C'est précisément cette liberté qui rend l'erreur inévitable un jour ou l'autre. - 3En 2ᵉ argument : écris le message à afficher quand le calcul échoue,
"Aucune boutique". Les guillemets sont obligatoires pour qu'Excel affiche ce texte tel quel. Il ne remplace la moyenne que si la fonction BDMOYENNE échoue, donc les villes qui ont bien une boutique gardent leur vraie moyenne. - 4Ferme la parenthèse et appuie sur Entrée.
=SIERREUR(BDMOYENNE(A1:C6; "Panier moyen"; E1:E2); "Aucune boutique")Lille, donc la fonction BDMOYENNE n'a rien à moyenner et renvoie l'erreur #DIV/0!, puisqu'elle devrait diviser par zéro. SIERREUR intercepte cette erreur et affiche Aucune boutique à la place, ce qui évite qu'un tableau de bord entier vire au rouge parce qu'une ville a été mal orthographiée. Le réflexe vaut dès qu'une zone de critères est pilotée par une cellule libre.
Les erreurs fréquentes avec la fonction BDMOYENNE
Avec BDMOYENNE, presque tout se joue dans le dialogue entre ta base et ta zone de critères. Le #DIV/0! tombe quand aucune ligne ne colle aux critères : Excel n'a alors rien à moyenner. Le #VALEUR! pointe vers l'argument champ mal nommé, et un résultat qui paraît faux trahit souvent une zone de critères sans sa ligne d'en-têtes.
Le fil rouge dans les trois cas : un nom de colonne qui ne correspond pas au caractère près à l'en-tête de ta base.
Erreur #DIV/0! : aucune correspondance trouvée
C'est l'erreur la plus fréquente avec BDMOYENNE. Elle survient quand aucun enregistrement de ta base ne correspond aux critères définis. Excel ne peut pas calculer une moyenne sur zéro valeur.
Solution : Vérifie que les noms de colonnes dans ta zone de critères correspondent EXACTEMENT aux en-têtes de ta base (même orthographe, même casse). Vérifie aussi que les valeurs recherchées existent bien dans ta table. Encapsule dans SIERREUR pour gérer l'affichage : =SIERREUR(BDMOYENNE(...); "Aucune donnée").
Erreur #VALEUR! : mauvaise référence de champ
Cette erreur apparaît quand le paramètre champ ne correspond à aucune colonne de ta base. Par exemple, si tu écris "Salaire" mais que ta colonne s'appelle "Sal." dans la base.
Solution : Vérifie l'orthographe exacte de ton en-tête. Si tu utilises un numéro de colonne, assure-toi qu'il ne dépasse pas le nombre de colonnes de ta base. Utilise le nom entre guillemets plutôt que le numéro, c'est plus fiable.
Résultat incorrect : zone de critères mal formatée
Si ta formule retourne un résultat inattendu, c'est souvent parce que ta zone de critères n'a pas la bonne structure. Elle doit TOUJOURS commencer par une ligne d'en-têtes.
Solution : Assure-toi que ta plage de critères inclut au minimum 2 lignes : la première avec les noms de colonnes, la seconde avec les valeurs. Même pour un seul critère, tu as besoin de ces deux lignes. Ne mets jamais juste une valeur isolée.

BDMOYENNE vs MOYENNE vs MOYENNE.SI.ENS vs BDMAX
Tu prends BDMOYENNE dès que tes filtres bougent souvent ou demandent un OU logique : la zone de critères externe te laisse changer un filtre sans rouvrir la formule, là où MOYENNE.SI.ENS te bloque sur du ET et des critères codés en dur. Pour une simple moyenne sans condition, MOYENNE reste plus directe.
BDMAX partage exactement la même mécanique de critères ; tu choisis entre les deux selon que tu cherches la moyenne ou la valeur la plus haute du sous-ensemble filtré.
| Critère | BDMOYENNE | MOYENNE | MOYENNE.SI.ENS | BDMAX |
|---|---|---|---|---|
| Critères multiples | Externe (zone séparée) | Non | Dans la formule | Externe (zone séparée) |
| Logique OU possible | Oui | Non | Non | Oui |
| Critères dynamiques | Très facile | Non | Avec INDIRECT | Très facile |
| Simplicité d'usage | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
| Résultat calculé | Moyenne | Moyenne | Moyenne | Maximum |
| Meilleur usage | Rapports dynamiques | Calculs simples | Critères fixes ET | Valeur max filtrée |

Astuces avancées avec BDMOYENNE
Crée un tableau de bord interactif
Place des listes déroulantes (Données, Validation) dans ta zone de critères. Ainsi, les utilisateurs peuvent sélectionner les filtres directement dans les cellules, et toutes les formules =BDMOYENNE(...) se mettent à jour automatiquement. C'est parfait pour créer des rapports que tes collègues peuvent utiliser sans connaître Excel.
Ton rapport devient autonome : le filtre est piloté par la cellule, pas par la formule.
Utilise la même zone pour toute la famille BD
Une seule zone de critères peut alimenter BDMOYENNE pour la moyenne, BDMAX pour le maximum, BDMIN pour le minimum et BDNB pour le nombre d'enregistrements. Tu obtiens une analyse complète en une poignée de formules qui partagent la même logique de filtrage.
Si le critère change, toutes les formules se mettent à jour d'un coup.
Exploite les caractères génériques
Dans ta zone de critères, tu peux utiliser * (n'importe quels caractères) et ? (un seul caractère). Mettre "Comm*" sous "Département" trouvera "Commercial", "Communication", etc. Pratique pour regrouper plusieurs catégories similaires sans lister chaque valeur.
Si une cellule de la zone de critères est vide (pas l'en-tête), Excel ignore ce critère : certains filtres deviennent optionnels.
Questions fréquentes
BDMOYENNE utilise une zone de critères externe (une mini-table séparée), ce qui la rend plus flexible pour des critères complexes ou multiples. MOYENNE.SI.ENS définit les critères directement dans la formule. Si tes critères changent souvent, BDMOYENNE est plus pratique : tu modifies la cellule de critères sans toucher à la formule. En revanche, si tes critères sont fixes et simples, MOYENNE.SI.ENS suffit et est plus rapide à écrire.
Non, BDMOYENNE ignore automatiquement les cellules vides et ne calcule la moyenne que sur les valeurs numériques qui correspondent à tes critères. C'est le même comportement que MOYENNE. Si toutes les cellules correspondantes sont vides, tu obtiendras #DIV/0! puisqu'il n'y a aucune valeur à moyenner.
Oui. Tu peux utiliser >, <, >=, <=, <> dans ta zone de critères. Par exemple, écris >50000 sous un en-tête "Salaire" pour calculer la moyenne des salaires supérieurs à 50 000 €.
Tu peux aussi utiliser des caractères génériques comme * et ? pour des critères textuels partiels.
Tu obtiens l'erreur #DIV/0! car Excel ne peut pas calculer une moyenne sur zéro valeur. C'est utile pour détecter qu'un critère est trop restrictif. Vérifie l'orthographe et les valeurs dans ta zone de critères. Tu peux aussi encapsuler dans SIERREUR pour afficher un message personnalisé à la place de l'erreur.
Oui, mais il faut utiliser les références de plage classiques (A1:D100) plutôt que les références structurées du tableau. BDMOYENNE est une fonction historique qui nécessite des plages traditionnelles pour le paramètre base_de_données.
Si tu travailles avec un tableau structuré, référence sa plage avec NomTableau[#Tout] pour inclure les en-têtes, ou détermine manuellement la plage A1:Xn.
Pour aller plus loin
Continue sur ta lancée après la fonction BDMOYENNE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



