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

Fonctions Excel MAX.SI.ENS et MIN.SI.ENS (MAXIFS/MINIFS) — Max et min conditionnels sans formule matricielle

|

Fonctions Excel MAX.SI.ENS et MIN.SI.ENS (MAXIFS/MINIFS) — Max et min conditionnels sans formule matricielle

L'essentielMAX.SI.ENS(plage_max; plage_critères1; critère1; …) renvoie la plus grande valeur de plage_max en ne regardant que les lignes qui passent chaque condition ; MIN.SI.ENS renvoie la plus petite. Ce sont MAX/MIN avec 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