Veronica sait utiliser la fonction MOYENNE pour déterminer la moyenne d’une plage de valeurs. Elle aimerait cependant que la moyenne soit déterminée sur la base des valeurs non nulles de la plage.

La fonction de feuille de calcul la plus adaptée à cet objectif est d’utiliser AVERAGEIF.

Vous pouvez l’utiliser de cette manière:

=AVERAGEIF(A1:A50,">0")

Cette fonction inclut uniquement dans la moyenne les cellules contenant des valeurs supérieures à zéro. Si vous souhaitez également exclure les cellules vides, vous devez utiliser la fonction AVERAGEIFS. Cette fonction diffère de AVERAGEIF en ce qu’elle vous permet de spécifier plusieurs critères qui indiquent quelles cellules faire la moyenne.

=AVERAGEIFS(A1:A50,A1:A50,">0",A1:A50,"<>""")

Bien sûr, si vous souhaitez aborder le problème «old school» (sans utiliser AVERAGEIF ou AVERAGEIFS), alors il existe plusieurs manières de procéder. Le premier est de se rappeler comment une moyenne est calculée. Il est défini comme la somme d’une plage de valeurs divisée par le nombre d’éléments de la plage. Ainsi, vous pouvez calculer la moyenne d’exclusion en vous assurant simplement que le dénominateur (le nombre par lequel vous divisez) n’inclut aucune valeur nulle. Par exemple:

=SUM(A1:A50)/COUNTIF(A1:A50,"<>0")

Cette approche utilise la fonction NB.SI pour déterminer le nombre de cellules de la plage (A1: A50) qui ne contiennent pas zéro. Si cette plage contient non seulement des zéros, mais également des cellules vides et que vous ne voulez pas que les cellules vides figurent dans le résultat, vous devez utiliser une formule plus complexe:

=SUM(A1:A50)/(COUNTIF(A1:A50,"<>0")-COUNTBLANK(A1:A50)- (COUNTA(A1:A50)-COUNT(A1:A50)))

La fonction NB.SI compte les cellules qui n’évaluent pas explicitement à 0, mais elle compte les cellules vides et de texte. Le terme COUNTBLANK s’ajuste pour les cellules vides et la différence entre COUNTA et COUNT ajuste le nombre total pour les cellules qui contiennent du texte.

Bien sûr, vous pouvez également utiliser une formule matricielle pour faire votre calcul:

=AVERAGE(IF(A1:A50<>0,A1:A50))

N’oubliez pas que les formules matricielles doivent être entrées en utilisant la combinaison Ctrl + Maj + Entrée. Cette formule matricielle exclut également les espaces ou les cellules contenant du texte.

Dans l’ensemble, il est plus facile d’utiliser les fonctions AVERAGEIF ou AVERAGEIFS.

Quand ne voudriez-vous pas les utiliser? Lorsque vous devez partager votre classeur avec des utilisateurs de versions d’Excel antérieures à Excel 2007. (C’est à ce moment que les fonctions ont été ajoutées à Excel.)

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (7729) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-An_Average_that_Excludes_Zero_Values ​​[Une moyenne qui exclut les valeurs nulles].