L'essentiel —
MAX.SI.ENS(plage_max; plage_critères1; critère1; …)renvoie la plus grande valeur deplage_maxen ne regardant que les lignes qui passent chaque condition ;MIN.SI.ENSrenvoie la plus petite. Ce sontMAX/MINavec un videur à l'entrée — seules les lignes admissibles sont comptées. Elles remplacent la formule matricielle laborieuse{=MAX(SI(…))}par une seule fonction ordinaire.
=MAX.SI.ENS(C2:C100; A2:A100; "West") ' vente la plus élevée dans l'Ouest
=MIN.SI.ENS(C2:C100; A2:A100; "West"; B2:B100; ">="&E1) ' la plus basse qui respecte aussi une date/un seuil
=MAX.SI.ENS(C2:C100; D2:D100; "Closed") ' plus grosse affaire conclue
Si vous avez déjà dégainé une formule matricielle en Ctrl+Maj+Entrée pour obtenir « la valeur la plus élevée où région = West », MAX.SI.ENS est la fonction qui a rendu cela obsolète. Elle appartient à la même famille que SOMME.SI.ENS, NB.SI.ENS et MOYENNE.SI.ENS — même syntaxe de critères, même logique ET — donc si vous en connaissez une, vous les connaissez presque toutes.
Remarque : dans l'interface d'Excel en français, ces fonctions s'appellent MAX.SI.ENS (MAXIFS en anglais) et MIN.SI.ENS (MINIFS), et les codes d'erreur s'affichent #N/A et #VALEUR!. Les formules ci-dessous emploient les noms français avec le point-virgule
;comme séparateur d'arguments — le comportement est identique à la version anglaise.
Ce que vous allez apprendre
- Le modèle mental : MAX/MIN filtré par des conditions
- L'ordre des arguments qui piège les habitués de
SOMME.SI(la plage de résultat vient en premier) - Comment fonctionnent les critères — les mêmes règles de chaîne que NB.SI/SOMME.SI.ENS
- Pourquoi elles remplacent l'ancienne formule matricielle
{=MAX(SI(…))} - Le piège du 0 silencieux quand aucune ligne ne correspond, et comment l'attraper
Le modèle mental : MAX/MIN avec un filtre en tête
Le simple MAX regarde chaque nombre d'une plage. MAX.SI.ENS place un filtre devant lui : « trouve la plus grande valeur — mais seulement dans les lignes qui satisfont ces conditions ». Tout le reste en découle.
=MAX.SI.ENS(C2:C100; A2:A100; "West"; B2:B100; ">100")
' ▲ cherche le max ici ▲ mais seulement où région="West" ET montant>100
Les conditions multiples se combinent avec ET — une ligne doit toutes les passer pour être prise en compte, exactement comme SOMME.SI.ENS et NB.SI.ENS. Il n'y a pas d'option OU intégrée ; pour un OU, vous prendriez le MAX de deux appels MAX.SI.ENS distincts, ou vous restructureriez les données.
L'ordre des arguments qui piège tout le monde
Voici le détail qui attrape tous ceux qui viennent de SOMME.SI ou de NB.SI :
dans la famille .SI.ENS, la plage que vous mesurez vient en premier, puis
les paires de critères :
=MAX.SI.ENS(plage_max; plage_critères1; critère1; [plage_critères2; critère2]; …)
' ▲ résultat ▲ où… ▲ égale ▲ et où… ▲ égale
Comparez avec les anciennes fonctions à condition unique, où la plage à sommer est le dernier argument, facultatif :
=SOMME.SI(plage_critères; critère; [plage_somme]) ' plage de résultat en DERNIER
=MAX.SI.ENS(plage_max; plage_critères; critère) ' plage de résultat en PREMIER
Cette incohérence entre SOMME.SI et les fonctions .SI.ENS est une véritable
verrue d'Excel, et c'est l'erreur numéro un avec MAX.SI.ENS : placer la plage de
critères là où devrait aller la plage du max. Mémorisez-le une fois pour toutes —
les fonctions .SI.ENS commencent toujours par la plage dont vous voulez une
réponse — et le piège cesse de mordre.
Les critères fonctionnent exactement comme NB.SI et SOMME.SI.ENS
Il n'y a rien de nouveau à apprendre sur les conditions elles-mêmes. Les critères
s'écrivent sous forme de chaînes, les opérateurs se placent à l'intérieur des
guillemets, et une référence de cellule se relie avec & — les mêmes règles que
NB.SI et
SOMME.SI.ENS :
=MAX.SI.ENS(C2:C100; C2:C100; ">0") ' plus grande valeur positive
=MAX.SI.ENS(C2:C100; B2:B100; ">"&E1) ' seuil issu de la cellule E1
=MAX.SI.ENS(C2:C100; A2:A100; "West*") ' caractère générique sur un critère texte
=MIN.SI.ENS(D2:D100; A2:A100; "West"; C2:C100; ">="&DATE(2026;1;1)) ' date fiable
Si vous construisez déjà des critères pour NB.SI ou SOMME.SI.ENS, vous les
construisez de la même façon ici — guillemets autour des opérateurs, & pour
injecter une valeur de cellule, DATE() pour des comparaisons de dates
indépendantes de la locale.
Pourquoi elles ont remplacé la formule matricielle
Avant Excel 2019, « max conditionnel » signifiait une formule matricielle saisie en Ctrl+Maj+Entrée :
{=MAX(SI(A2:A100="West"; C2:C100))} ' ancienne méthode — formule matricielle (Ctrl+Maj+Entrée)
=MAX.SI.ENS(C2:C100; A2:A100; "West") ' nouvelle méthode — une fonction ordinaire
L'ancienne forme fonctionne, mais traîne un vrai fardeau : vous devez vous souvenir de la saisie en accolades, elle est opaque pour le lecteur suivant, et elle se casse facilement si on la modifie sans la re-valider en matriciel. MAX.SI.ENS ramène tout cela à une fonction simple que chacun peut lire et modifier. C'est tout l'intérêt de la fonction — un résultat que vous pourriez calculer par la voie astucieuse, écrit plutôt par la voie ennuyeuse et durable.
Une note de version : MAX.SI.ENS et MIN.SI.ENS exigent Excel 2019 ou Microsoft
365. Sur Excel 2016 et antérieur, elles n'existent pas, et vous vous rabattez sur
la formule matricielle {=MAX(SI(…))} ou sur une approche fondée sur
AGREGAT.
Le piège du 0 silencieux
C'est le mode de défaillance qui corrompt discrètement les rapports. Quand aucune
ligne ne correspond aux conditions, MAX.SI.ENS et MIN.SI.ENS renvoient 0 — ni
#N/A, ni vide, ni erreur.
=MAX.SI.ENS(C2:C100; A2:A100; "Antarctica") ' région inexistante -> 0
Si vos données peuvent contenir des valeurs négatives (températures, résultats,
ajustements), ce 0 est un mensonge : il ressemble à un maximum légitime trônant
au-dessus de vos vraies valeurs négatives, ou à un minimum légitime en dessous de vos
positives. Personne ne voit d'erreur, donc personne ne vérifie. Prémunissez-vous en
testant d'abord si des lignes ont correspondu :
=SI(NB.SI.ENS(A2:A100;"West")=0; "Aucune donnée"; MAX.SI.ENS(C2:C100; A2:A100; "West"))
Utilisez NB.SI.ENS avec les mêmes conditions pour demander « y a-t-il eu une correspondance ? » avant de faire confiance au nombre. C'est le seul contrôle qui distingue une formule de max conditionnel robuste d'une autre qui rapporte silencieusement 0 comme une valeur réelle.
Le jugement
MAX.SI.ENS et MIN.SI.ENS sont la bonne réponse presque chaque fois que vous êtes
tenté d'écrire {=MAX(SI(…))}. La formule matricielle n'a plus que deux
justifications : vous êtes sur Excel 2016 ou antérieur, ou vous avez besoin d'une
logique OU entre conditions que la famille .SI.ENS, limitée au ET, ne sait pas
exprimer. Tout le reste — conditions ET simples ou multiples, seuils issus de
cellules, plages de dates — relève de MAX.SI.ENS/MIN.SI.ENS, car une fonction simple
que la personne suivante peut lire et modifier bat une formule matricielle astucieuse
à tous les coups. Simplement, ne faites jamais confiance au résultat brut sur des
données pouvant devenir négatives avant d'avoir confirmé qu'une correspondance
existe. Adoptez ces deux réflexes — plage de résultat en premier, garde contre le 0
d'absence de correspondance — et les extrêmes conditionnels cessent d'être une source
d'erreurs discrètes et non signalées.
Comment ExcelMaster aide
Les deux façons dont MAX.SI.ENS tourne mal — l'ordre des arguments inversé et le 0
silencieux en l'absence de correspondance — sont exactement ce qu'une formule ne vous
signale jamais. ExcelMaster fait les deux correctement, automatiquement : il
place la plage de résultat en premier, construit les critères avec les mêmes règles
& et DATE() que vos SOMME.SI.ENS, et enveloppe la formule dans un contrôle de
correspondance pour qu'un résultat vide affiche « Aucune donnée » au lieu d'un 0
trompeur. Demandez « la plus grosse commande de la région Ouest cette année » ou « le
prix le plus bas par fournisseur », et il renvoie un max conditionnel que vous pouvez
poser directement dans un rapport — garde comprise, celle que vous auriez sans doute
oubliée.
Questions fréquentes
Comment utiliser MAX.SI.ENS dans Excel ?
=MAX.SI.ENS(plage_max; plage_critères1; critère1; …) renvoie la plus grande valeur
de plage_max parmi les lignes qui satisfont toutes les conditions. Par exemple,
=MAX.SI.ENS(C2:C100; A2:A100; "West") donne la valeur la plus élevée de la colonne
C là où la colonne A vaut "West". MIN.SI.ENS fonctionne à l'identique pour la plus
petite valeur.
Pourquoi MAX.SI.ENS renvoie-t-elle 0 ?
Parce qu'aucune ligne n'a satisfait vos conditions — MAX.SI.ENS et MIN.SI.ENS
renvoient 0 (pas une erreur) quand rien n'est admissible. Sur des données à valeurs
négatives, cela ressemble à un vrai résultat. Testez d'abord avec
NB.SI.ENS :
=SI(NB.SI.ENS(…)=0;"Aucune donnée";MAX.SI.ENS(…)).
Quel est l'ordre des arguments de MAX.SI.ENS par rapport à SOMME.SI ?
MAX.SI.ENS (comme toutes les fonctions .SI.ENS) place la plage de résultat en
premier : MAX.SI.ENS(plage_max; plage_critères; critère). L'ancienne SOMME.SI
place la plage de résultat en dernier : SOMME.SI(plage_critères; critère; [plage_somme]). Les confondre est l'erreur la plus courante.
MAX.SI.ENS peut-elle utiliser plusieurs conditions ?
Oui. Ajoutez d'autres paires plage_critères; critère — elles se combinent avec
ET, si bien qu'une ligne doit satisfaire chaque condition pour être prise en
compte : =MAX.SI.ENS(C:C; A:A; "West"; B:B; ">100"). Il n'y a pas de OU intégré ;
pour un OU, prenez le MAX d'appels MAX.SI.ENS distincts.
Que puis-je utiliser à la place de MAX.SI.ENS dans Excel 2016 ?
MAX.SI.ENS exige Excel 2019 ou Microsoft 365. Dans Excel 2016, utilisez la formule
matricielle {=MAX(SI(condition; plage))} saisie en Ctrl+Maj+Entrée, ou une formule
fondée sur AGREGAT.
Testé dans
Testé dans : Excel 365 (Windows 11) — dernière vérification le 08/07/2026.
Guides associés : Excel SOMME.SI.ENS · Excel NB.SI.ENS · Excel MOYENNE.SI.ENS · Excel AGREGAT
