🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Fonction AVERAGE d'Excel — pourquoi une cellule vide et un zéro donnent deux réponses différentes

|

Fonction AVERAGE d'Excel — pourquoi une cellule vide et un zéro donnent deux réponses différentes

L'essentielAVERAGE, c'est somme ÷ nombre, mais uniquement sur les nombres qu'elle trouve : =AVERAGE(B2:B20). Elle saute entièrement les cellules vides et le texte — ils ne comptent ni dans le total ni dans le diviseur — mais elle compte un vrai 0 pour ce qu'il est, ce qui tire la moyenne vers le bas. Cette seule distinction, c'est tout le piège : enregistrer « aucune vente » en 0 plutôt que de laisser la cellule vide produit deux moyennes différentes de la même réalité, et la formule ne vous donne aucun indice de celle que vous avez obtenue. AVERAGEA est la cousine agressive qui compte le texte et FALSE comme 0 — presque jamais ce que vous voulez. Prenez AVERAGE pour une moyenne simple ; décidez au moment de la saisie de ce qu'une valeur manquante signifie.

=AVERAGE(B2:B20)          ' moyenne des nombres seulement ; vides et texte ignorés
=AVERAGE(B2:B20, D2:D20)  ' plusieurs plages sont acceptées — regroupées, puis moyennées
=AVERAGE(3, 5, 7)         ' les constantes marchent aussi -> 5
=AVERAGEA(B2:B20)         ' le texte et FALSE comptent comme 0, TRUE comme 1 — souvent faux

Cherchez « fonction AVERAGE Excel » et vous obtiendrez =AVERAGE(nombre1, nombre2, …) avec la mention qu'elle « renvoie la moyenne arithmétique », comme si la seule difficulté était de trouver le bouton. Mais vous savez déjà ce qu'est une moyenne. Ce qui mord vraiment — la raison pour laquelle deux analystes qui pointent AVERAGE sur la même colonne obtiennent des nombres différents — n'est pas l'arithmétique. C'est ce qui compte comme valeur. Les vides, les zéros et le texte sont chacun traités différemment, et ces règles décident de votre réponse en silence. C'est par là que commence cette page.

Remarque : dans une interface Excel en français, cette fonction s'appelle MOYENNE. Équivalents : AVERAGEA = MOYENNEA, AVERAGEIF = MOYENNE.SI, AVERAGEIFS = MOYENNE.SI.ENS, IFERROR = SIERREUR, SUBTOTAL = SOUS.TOTAL. Les codes d'erreur sont eux aussi localisés : #DIV/0! reste #DIV/0!. Les formules ci-dessous utilisent les noms anglais ; le comportement est identique.

Ce que vous allez apprendre

  • Le modèle mental : AVERAGE, c'est somme ÷ nombre, mais seulement sur les vrais nombres
  • Le piège vide-vs-zéro : pourquoi une cellule vide et un 0 donnent des moyennes différentes
  • Pourquoi AVERAGE saute sans risque le texte d'en-tête dans une référence de colonne entière
  • Ce que fait vraiment AVERAGEA — et pourquoi ce n'est presque jamais le bon choix
  • Quand la moyenne est la mauvaise question : moyennes de moyennes, et pourcentages
  • Le cas de l'ensemble vide : #DIV/0! et comment s'en protéger

Le modèle mental : somme ÷ nombre de valeurs numériques

AVERAGE fait exactement deux choses : elle additionne chaque nombre de ce que vous lui passez, puis divise par le nombre de valeurs numériques présentes. Le mot « nombre » porte tout le poids. Une cellule vide n'est pas un nombre : elle ne contribue donc ni à la somme ni au comptage — comme si elle n'existait pas. Un texte comme "N/A" n'est pas un nombre non plus, il est donc sauté de la même façon. Ce qui survit pour être moyenné, ce sont uniquement les cellules réellement numériques.

C'est généralement ce que vous voulez, et c'est pourquoi =AVERAGE(B:B) sur une colonne entière ne s'étrangle pas sur l'étiquette d'en-tête en B1 — le texte est simplement ignoré. Mais cette même souplesse cache le piège de la section suivante, car il existe un type de « vide » que AVERAGE ne saute pas : une cellule qui contient réellement 0.

Le piège vide-vs-zéro : celui qui décide de votre réponse

Voici le mode de défaillance à connaître. Supposons qu'un commercial n'ait fait aucune vente ce mois-ci. Vous avez deux façons de l'enregistrer, et elles ne sont pas interchangeables :

' Colonne B : 10, 20, 0        (l'« aucune vente » saisie en zéro)
=AVERAGE(B2:B4)   ' -> 10     (le 0 compte : 30 ÷ 3)

' Colonne B : 10, 20, (vide)   (l'« aucune vente » laissée vide)
=AVERAGE(B2:B4)   ' -> 15     (le vide est sauté : 30 ÷ 2)

Trois mêmes personnes, même « aucune vente », et la moyenne bascule de 10 à 15 — un écart de 50 % — uniquement à cause d'une convention de saisie que personne ne perçoit comme une décision. Un vrai 0 est un vrai nombre : il rejoint la somme (sans rien y ajouter) et, surtout, rejoint le comptage (il ajoute un au diviseur), ce qui tire la moyenne vers le bas. Un vide ne rejoint ni l'un ni l'autre.

Aucune des deux réponses n'est universellement « juste » — c'est tout le problème. Si un mois sans vente compte réellement comme un mois à performance nulle, 10 est correct. Si ces personnes étaient en congé et n'ont rien à faire au dénominateur, 15 est correct. Le danger, c'est que la formule est identique dans les deux cas et vous engage en silence dans la convention que vos données emploient par hasard. Décidez-en volontairement : pour exclure les zéros d'une moyenne, soit laissez la cellule vide à la saisie, soit filtrez-les explicitement avec AVERAGEIF : =AVERAGEIF(B2:B4, "<>0").

AVERAGEA : la cousine qui compte le texte comme zéro

AVERAGEA a l'air d'un AVERAGE plus consciencieux — « la moyenne, mais en incluant tout ». Ce que « inclure tout » veut dire en réalité, c'est qu'elle convertit les non-nombres au lieu de les sauter : le texte devient 0, FALSE devient 0, TRUE devient 1, et les vides restent sautés.

' Colonne A : 90, 80, "absent"
=AVERAGE(A2:A4)    ' -> 85    ("absent" sauté : 170 ÷ 2)
=AVERAGEA(A2:A4)   ' -> 56.7  ("absent" compté comme 0 : 170 ÷ 3)

Ce 56,7 n'est presque certainement pas le nombre que quiconque voulait. Une colonne de notes avec une étiquette de texte égarée se retrouve diluée — l'étiquette atterrit comme un zéro et tire la moyenne fortement vers le bas. Le seul usage honnête d'AVERAGEA est étroit : quand le texte de vos données devrait vraiment être traité comme zéro (disons que "en attente" signifie effectivement une affaire à valeur nulle pour ce que vous mesurez). Ce cas est rare. Par défaut, tablez sur AVERAGE ; ne sortez AVERAGEA que lorsque vous pouvez dire à voix haute pourquoi un mot mérite de compter comme 0.

Quand la moyenne est la mauvaise question

Les échecs les plus tranchants ne portent ni sur les vides ni sur le texte — ils portent sur le fait de moyenner la mauvaise chose. Deux schémas en causent la quasi-totalité :

Moyenner des moyennes. Si chaque région rapporte déjà une taille moyenne d'affaire et que vous faites la AVERAGE de ces moyennes régionales, vous avez donné le même poids à une région de 3 affaires et à une région de 300. Le résultat est un vrai nombre qui ne répond à aucune vraie question. Quand chaque chiffre résume un groupe de taille différente, il vous faut une moyenne pondérée, pas une moyenne simple — le total, divisé par l'effectif total. C'est assez courant pour avoir son propre guide : voir Moyenne pondérée dans Excel.

Moyenner des taux et de la croissance. Moyenner des pourcentages de façon naïve est un piège du même ordre. Une année à +50 % suivie d'une année à −50 % ne fait pas une moyenne de 0 % — vous finissez en baisse de 25 % — donc la AVERAGE des deux pourcentages vous ment. La croissance composée réclame la moyenne géométrique, traitée dans GEOMEAN, TRIMMEAN et HARMEAN. La règle empirique : AVERAGE sert pour des quantités indépendantes de même nature et de même poids ; dès l'instant où vos nombres sont des résumés, des pourcentages ou des taux, demandez-vous si une moyenne simple est seulement le bon outil.

Le cas de l'ensemble vide : #DIV/0!

S'il n'y a aucun nombre du tout dans la plage — chaque cellule vide ou textuelle —, AVERAGE a un comptage de zéro et ne peut pas diviser par lui : elle renvoie donc #DIV/0!. C'est le même comportement « la moyenne de rien n'est pas définie » que montre AVERAGEIFS quand aucune ligne ne correspond. Quand une plage peut légitimement être vide (une catégorie encore sans entrée), enveloppez-la :

=IFERROR(AVERAGE(B2:B20), "—")   ' afficher un tiret au lieu de #DIV/0! quand c'est vide

Faites-en un réflexe pour toute moyenne qui alimente un tableau de bord ou une cellule sur laquelle d'autres s'appuient — un seul #DIV/0! se propage à tout ce qui vient en aval.

Comment ExcelMaster vous aide

La partie dangereuse d'une moyenne n'est jamais la saisie — c'est de savoir qu'un 0 enregistré et un vide donnent des réponses différentes, qu'AVERAGEA transforme discrètement une étiquette de texte en zéro, et que « la moyenne des moyennes régionales » est le plus souvent la mauvaise question. Demandez à ExcelMaster « pourquoi ma moyenne est-elle plus basse que prévu ? » et il inspecte la plage à la recherche de zéros qui devraient être des vides et de texte qu'AVERAGEA compte, puis vous dit quelle convention vos données utilisent réellement. Dites « la taille moyenne des affaires par région, pondérée par le nombre d'affaires » et il écrit la formule pondérée au lieu de la moyenne simple trompeuse.

Questions fréquentes

Est-ce qu'AVERAGE ignore les cellules vides dans Excel ?

Oui. AVERAGE saute entièrement les cellules réellement vides — elles ne comptent ni dans la somme ni dans le diviseur. Mais une cellule contenant 0 est un vrai nombre et est incluse, ce qui abaisse la moyenne. Cette différence entre vide et zéro est la raison la plus fréquente pour laquelle une moyenne n'est pas celle que vous attendiez.

Quelle est la différence entre AVERAGE et AVERAGEA ?

AVERAGE ne moyenne que les nombres, en sautant le texte et les valeurs logiques. AVERAGEA les inclut par conversion : le texte et FALSE comptent comme 0, TRUE compte comme 1. Sur une colonne de notes contenant une étiquette de texte égarée, AVERAGE l'ignore tandis qu'AVERAGEA la compte comme zéro et tire la moyenne vers le bas — c'est donc presque toujours AVERAGE que vous voulez.

Pourquoi mon AVERAGE renvoie-t-il #DIV/0! ?

Parce que la plage ne contient aucun nombre à moyenner — chaque cellule est vide ou textuelle, le comptage vaut donc zéro et Excel ne peut pas diviser par lui. Enveloppez pour gérer le cas vide : =IFERROR(AVERAGE(B2:B20), "—"). Si vous attendiez des nombres, vérifiez qu'ils ne sont pas stockés en texte (alignés à gauche, avec un petit triangle vert).

Comment faire la moyenne de cellules en ignorant les zéros ?

Utilisez AVERAGEIF avec un critère « différent de zéro » : =AVERAGEIF(B2:B20, "<>0"). Cela exclut les vrais zéros de la somme comme du comptage, donnant la moyenne des seules entrées non nulles — utile quand un 0 signifie « pas de donnée » plutôt qu'une véritable valeur mesurée.

Comment faire la moyenne d'une liste filtrée ou des seules lignes visibles ?

AVERAGE inclut les lignes masquées. Pour ne moyenner que les lignes laissées visibles par un filtre, utilisez SUBTOTAL : =SUBTOTAL(101, B2:B20) ne moyenne que les cellules visibles et se met à jour au fil du filtrage.

Testé dans

Testé dans : Excel 365 (Windows 11) — dernière vérification le 27/07/2026.

Guides associés : Moyenne pondérée dans Excel · Excel GEOMEAN, TRIMMEAN et HARMEAN · Excel AVERAGEIF et AVERAGEIFS · Excel SUBTOTAL · Excel ROUND