=MOYENNE.SI(A2:A7;"North";C2:C7) fait la moyenne des ventes de C2:C7 sur les lignes où la colonne A vaut North. MOYENNE.SI (AVERAGEIF en anglais) fonctionne comme SOMME.SI, sauf qu'elle divise le total par le nombre de lignes correspondantes. Le tableau affiche les formules sous leur forme anglaise, avec des virgules, mais vous pouvez aussi les taper comme dans un Excel français, avec des points-virgules : =MOYENNE.SI(A2:A7;"North";C2:C7).
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Condition | Average | |
| 2 | North | Apple | 120 | North | 90 | |
| 3 | South | Pear | 45 | North, Apple | 80 | |
| 4 | North | Pear | 110 | Over 50 | 120 | |
| 5 | East | Apple | 55 | |||
| 6 | South | Apple | 195 | |||
| 7 | North | Apple | 40 |
=MOYENNE.SI(A2:A7;"North";C2:C7)F2 fait la moyenne des trois lignes North, 120, 110 et 40, et affiche 90. F3 demande deux conditions, North et Apple, et utilise donc MOYENNE.SI.ENS (AVERAGEIFS) : (120 + 40) / 2 = 80. F4 n'a pas de plage de moyenne séparée : elle fait la moyenne des ventes correspondantes elles-mêmes.
Syntaxe de MOYENNE.SI et MOYENNE.SI.ENS
=AVERAGEIF(range, criteria, [average_range])
=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
L'ordre des arguments est le même piège qu'avec SOMME.SI et SOMME.SI.ENS : MOYENNE.SI place la plage à moyenner en dernier (et permet de l'omettre), MOYENNE.SI.ENS la place en premier. Les critères s'écrivent de la même façon dans les deux : "North", ">50", "<>0", "*apple*", ou un opérateur relié à une cellule, ">"&F5. Les cellules vides et le texte de la plage à moyenner sont ignorés.
Moyenne sans les zéros
MOYENNE (AVERAGE) compte un 0 comme une valeur : deux élèves absents notés 0 font baisser la moyenne de la classe. Les cellules vides, elles, sont ignorées par MOYENNE. =MOYENNE.SI(B2:B7;"<>0") ignore aussi les zéros.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Student | Score | Method | Result | |
| 2 | Ana | 80 | AVERAGE | 48 | |
| 3 | Ben | 0 | Ignore zeros | 80 | |
| 4 | Cara | 90 | Count of zeros | 2 | |
| 5 | Dan | Count of numbers | 5 | ||
| 6 | Eva | 70 | |||
| 7 | Finn | 0 |
=MOYENNE.SI(B2:B7;"<>0")MOYENNE divise 240 par 5, car la cellule vide de Dan est ignorée mais les deux zéros sont comptés, et affiche 48. MOYENNE.SI avec "<>0" divise 240 par 3 et affiche 80. Tapez 60 en B5 et les deux changent ; tapez 0 en B5 et seule MOYENNE bouge. Pour ignorer aussi les nombres négatifs, utilisez ">0".
Pourquoi MOYENNE.SI renvoie #DIV/0!
Quand rien ne correspond, MOYENNE.SI n'a rien par quoi diviser et renvoie #DIV/0! (l'erreur porte le même nom en français et en anglais). Entourez-la de SIERREUR (IFERROR) pour afficher un tiret, un message ou une cellule vide à la place.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Formula | Result | |
| 2 | North | Apple | 120 | West average | #DIV/0! | |
| 3 | South | Pear | 45 | With IFERROR | No sales | |
| 4 | North | Pear | 110 | North max | 120 | |
| 5 | East | Apple | 55 | North min | 40 | |
| 6 | South | Apple | 195 | Apple max | 195 | |
| 7 | North | Apple | 40 |
#DIV/0! La formule divise par zéro ou par une cellule vide.Dans Excel en français : =MOYENNE.SI(A2:A7;"West";C2:C7)Il n'y a pas de ligne West, donc F2 affiche #DIV/0! et F3 affiche le message. Mettez West en A3 et les deux affichent 45.
MAX.SI.ENS et MIN.SI.ENS
F4 à F6 dans le tableau ci-dessus trouvent la plus grande et la plus petite valeur sous condition. MAX.SI.ENS (MAXIFS en anglais) et MIN.SI.ENS (MINIFS) suivent l'ordre de MOYENNE.SI.ENS, la plage où chercher en premier : =MAX.SI.ENS(C2:C7;A2:A7;"North") renvoie 120 et =MIN.SI.ENS(C2:C7;A2:A7;"North") renvoie 40. Contrairement à MOYENNE.SI, elles renvoient 0 quand rien ne correspond, pas une erreur.
MAX.SI.ENS et MIN.SI.ENS demandent Excel 2019 ou une version ultérieure, ou Microsoft 365. Dans Excel 2016 et les versions antérieures, =MAX(SI(A2:A7="North";C2:C7)) fait la même chose ; dans ces versions, validez-la avec Ctrl+Maj+Entrée (Cmd+Maj+Entrée sur Mac).
Exercice : moyenne avec deux conditions
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Class | Score | Condition | Average | |
| 2 | Ana | A | 80 | Class A, no zeros | ||
| 3 | Ben | B | 75 | |||
| 4 | Cara | A | 0 | |||
| 5 | Dan | B | 60 | |||
| 6 | Eva | A | 90 | |||
| 7 | Finn | B | 0 | |||
| 8 | Gus | A | 70 |
À vous : Faites la moyenne des notes de la classe A, sans les zéros (élèves absents). Écrivez la formule en F2.
Moyenne de moyennes : une erreur fréquente
Faire la moyenne des moyennes de groupes de tailles différentes donne une mauvaise moyenne générale. North a trois lignes et South deux : dans la moyenne des deux moyennes, chaque ligne South pèse plus qu'elle ne le devrait.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Region | Sales | Formula | Result | |
| 2 | North | 120 | North | 90 | |
| 3 | South | 45 | South | 120 | |
| 4 | North | 110 | Average of the two | 105 | |
| 5 | South | 195 | All rows | 102 | |
| 6 | North | 40 |
=MOYENNE(E2:E3)E4 affiche 105, E5 la vraie moyenne des cinq lignes, 102. Quand les groupes n'ont pas la même taille, faites la moyenne des lignes elles-mêmes avec une seule MOYENNE.SI.ENS, ou divisez une SOMME.SI.ENS par une NB.SI.ENS sur les mêmes conditions :
=SUMIFS(B2:B6,A2:A6,"North")/COUNTIFS(A2:A6,"North")
Dans un Excel français : =SOMME.SI.ENS(B2:B6;A2:A6;"North")/NB.SI.ENS(A2:A6;"North").
Une note pondérée par des crédits ou par des quantités est encore un autre calcul : c'est une moyenne pondérée.
Questions fréquentes
Quelle est la différence entre MOYENNE.SI et MOYENNE.SI.ENS ?
MOYENNE.SI prend une seule condition et place la plage à moyenner en dernier : =MOYENNE.SI(A2:A7;"North";C2:C7). MOYENNE.SI.ENS prend plusieurs conditions et place la plage à moyenner en premier : =MOYENNE.SI.ENS(C2:C7;A2:A7;"North";B2:B7;"Apple").
Comment faire une moyenne dans Excel sans tenir compte des zéros ?
Utilisez =MOYENNE.SI(B2:B7;"<>0"). Seules les cellules différentes de 0 entrent dans la moyenne. MOYENNE et MOYENNE.SI ignorent déjà les cellules vides, donc seuls les vrais zéros demandent la condition.
Pourquoi MOYENNE.SI renvoie-t-elle #DIV/0! ?
Aucune cellule ne remplit la condition : Excel divise une somme de 0 par un nombre de 0. Entourez la formule pour afficher autre chose : =SIERREUR(MOYENNE.SI(A2:A7;"West";C2:C7);"No data").
Comment trouver la valeur maximale avec une condition ?
Utilisez MAX.SI.ENS, avec la plage où chercher en premier : =MAX.SI.ENS(C2:C7;A2:A7;"North") renvoie la plus grande valeur North. MIN.SI.ENS fonctionne de la même façon pour la plus petite. Les deux demandent Excel 2019 ou une version ultérieure, ou Microsoft 365.