Qu'est-ce que la fonction MAX. SI. ENS ?
MAX.SI.ENS (MAXIFS en anglais) est la fonction qu'il te faut quand tu cherches la plus grande valeur dans un tableau en appliquant plusieurs conditions à la fois. Tu veux trouver la meilleure vente de ton équipe, mais uniquement pour un produit précis ET une région donnée ? C'est exactement ce que fait MAX.SI.ENS.
Concrètement, elle t'évite les recherches manuelles interminables : identifier le salaire le plus élevé dans un département, le délai de livraison maximum avec un transporteur, le bien immobilier le plus cher dans une ville et un type donnés. Elle combine la puissance de MAX avec la sélectivité de critères multiples.
Syntaxe
=MAX.SI.ENS(plage_max; plage_critère1; critère1; [plage_critère2]; [critère2]; ...)Clique sur un argument pour aller à son explication.
MAX.SI.ENS n'a pas d'équivalent à un seul critère : même pour une seule condition, tu dois utiliser cette fonction (il n'existe pas de MAX.SI).

Comprendre chaque paramètre de la fonction MAX.SI.ENS
Les arguments s'enchaînent toujours dans le même ordre : d'abord plage_max, la colonne où tu veux la plus grande valeur, puis tes paires plage_critère / critère qui filtrent les lignes. Tu peux empiler jusqu'à 127 conditions, mais seules les paires à partir de la deuxième sont facultatives : la première plage et son critère sont obligatoires, même si tu n'as qu'une seule condition.
plage_max
: la plage dans laquelle Excel cherche la valeur maximalePar exemple, pour trouver la plus grosse vente, plage_max est ta colonne des montants. Excel examine uniquement les cellules de cette plage qui répondent à tous tes critères, puis retourne la plus grande.
Cette plage doit contenir des nombres ou des valeurs numériques, dates comprises. Elle doit avoir exactement la même taille que chaque plage_critère.
plage_critère1
: la première plage dans laquelle Excel vérifie ton premier critèreElle doit avoir exactement le même nombre de lignes que plage_max. C'est souvent une colonne comme "Région", "Produit" ou "Département" selon ton besoin d'analyse.
critère1
: la condition à appliquer sur `plage_critère1`Ça peut être un texte comme "Paris", un nombre, une référence de cellule, ou une comparaison comme ">50" ou "<>Fermé". Excel ne garde que les lignes où cette condition est vraie.
Pour utiliser un opérateur avec une valeur de cellule, concatène-le avec & : ">"&B10 plutôt que >B10.
[plage_critère2], [critère2], ...
: tu peux ajouter autant de paires plage/critère que nécessaire, jusqu'à 127(facultatif)C'est la force de MAX.SI.ENS : combiner plusieurs conditions simultanément. Excel retourne le maximum uniquement pour les lignes qui respectent TOUTES ces conditions à la fois.

Exemples pratiques pas à pas
Comment trouver la valeur maximale selon plusieurs critères avec la fonction MAX.SI.ENS
La réunion commerciale est dans une heure et on va te demander quelle est la plus grosse affaire signée à Paris par Martin. Ton tableau aligne toutes les ventes de l'année avec leur région, leur commercial, leur client et leur montant, et deux cellules posées à côté servent de filtres : la région à étudier et le commercial à étudier. La fonction MAX.SI.ENS lit ces deux cellules, ne garde que les lignes qui cochent les deux cases et te sort le montant le plus élevé, sans que tu aies à trier ni à filtrer le tableau.
- 1Dans une cellule, écris
=MAX.SI.ENS(. - 2En 1er argument : sélectionne la colonne Montant,
D2:D15. C'est la seule plage dans laquelle la fonction MAX.SI.ENS ira piocher son résultat. - 3En 2ᵉ argument : sélectionne la colonne Région,
A2:A15. Elle porte ta première condition et couvre exactement les mêmes lignes que la colonne Montant, de la ligne 2 à la ligne 15, sinon la correspondance ligne à ligne se décale. - 4En 3ᵉ argument : clique sur la cellule qui affiche la région à étudier,
G4. En pointant cette cellule plutôt qu'en écrivant"Paris"dans la formule, il te suffit d'y taper une autre région pour relancer le calcul. - 5En 4ᵉ argument : sélectionne la colonne Commercial,
B2:B15. Comme la précédente, elle s'aligne ligne à ligne sur la colonne Montant. - 6En 5ᵉ argument : clique sur la cellule qui porte le nom du commercial à étudier,
G7. Les deux conditions se cumulent, donc seules les lignes à la foisParisetMartinsont retenues. - 7Ferme la parenthèse et appuie sur Entrée.
=MAX.SI.ENS(D2:D15; A2:A15; G4; B2:B15; G7)Paris et le commercial Martin, puis renvoie la plus grande des quatre valeurs restantes. C'est la vente chez Durand SARL, à 2 500 €. Comme les deux critères sont lus dans les cellules G4 et G7, il suffit de taper une autre région ou un autre nom pour relancer le calcul, sans jamais rouvrir la formule.Comment combiner un critère texte et un seuil chiffré avec la fonction MAX.SI.ENS
Un client t'appelle pour savoir jusqu'où grimpent les prix à Lyon sur un bien d'au moins 60 m², avant de fixer son budget. Ton fichier liste chaque bien avec sa ville, sa surface et son prix, et tu veux lui annoncer le prix le plus haut qui coche ces deux cases pendant qu'il est encore en ligne. La fonction MAX.SI.ENS accepte une condition chiffrée à côté d'une condition texte, donc elle traite les deux d'un seul coup.
- 1Dans une cellule, écris
=MAX.SI.ENS(. - 2En 1er argument : sélectionne la colonne Prix,
D2:D7. C'est dans cette plage que la fonction va chercher la plus grande valeur. - 3En 2ᵉ argument : sélectionne la colonne Ville,
B2:B7. C'est sur elle que porte ta condition texte. - 4En 3ᵉ argument : saisis la ville à isoler,
"Lyon". Un critère texte se met entre guillemets, sans opérateur ni signe égal devant. - 5En 4ᵉ argument : sélectionne la colonne Surface,
C2:C7. Cette fois la condition va porter sur un nombre. - 6En 5ᵉ argument : saisis le seuil de surface,
">=60". L'opérateur et le nombre tiennent ensemble dans une seule chaîne entre guillemets, et les deux conditions se cumulent, donc un bien lyonnais trop petit ne compte pas. - 7Ferme la parenthèse et appuie sur Entrée.
=MAX.SI.ENS(D2:D7; B2:B7; "Lyon"; C2:C7; ">=60")">=60", guillemets compris : c'est la règle dès qu'un opérateur de comparaison entre en jeu, et la formule ne se valide pas sans eux. Trois biens sont à Lyon avec au moins 60 m² (380 000 €, 520 000 € et 485 000 €), et la fonction retient le plus cher des trois. Le bien de 45 m² est écarté malgré sa ville, faute de passer le seuil.Comment trouver le maximum sur une période avec la fonction MAX.SI.ENS
Le bilan du premier trimestre part demain et tu dois y faire figurer la meilleure journée de la boutique de Lille. Ton relevé empile toutes les journées de toutes les boutiques depuis janvier, et les deux dates qui bornent le trimestre sont posées dans deux cellules à côté du tableau. La fonction MAX.SI.ENS sait cumuler une condition sur la boutique et deux conditions sur la même colonne de dates, donc elle isole la période sans que tu touches à tes données.
- 1Dans une cellule, écris
=MAX.SI.ENS(. - 2En 1er argument : sélectionne la colonne du chiffre d'affaires,
C2:C8. C'est la seule plage dans laquelle la fonction MAX.SI.ENS a le droit de chercher son résultat. - 3En 2ᵉ argument : sélectionne la colonne Boutique,
B2:B8. C'est sur elle que porte ta condition sur le magasin. - 4En 3ᵉ argument : saisis le nom de la boutique à isoler,
"Lille". Les autres boutiques sortent du calcul dès cette condition. - 5En 4ᵉ argument : sélectionne la colonne Date,
A2:A8. C'est elle qui va porter la borne de début du trimestre. - 6En 5ᵉ argument : saisis la borne de début sous la forme
">="&F2, oùF2contient le 01/01/2026. L'esperluette soude l'opérateur à la date de la cellule ; sans elle, la formule chercherait littéralement le texte>=F2dans tes dates et ne trouverait rien. - 7En 6ᵉ argument : sélectionne une seconde fois la colonne Date,
A2:A8. Rien n'interdit d'interroger deux fois la même plage, et c'est même ce qui permet d'encadrer une période. - 8En 7ᵉ argument : saisis la borne de fin sous la forme
"<="&F3, avec le 31/03/2026 dansF3. Les trois conditions se cumulent, donc seules les journées lilloises comprises entre les deux bornes sont retenues. - 9Ferme la parenthèse et appuie sur Entrée.
=MAX.SI.ENS(C2:C8; B2:B8; "Lille"; A2:A8; ">="&F2; A2:A8; "<="&F3)Comment éviter le 0 trompeur de la fonction MAX.SI.ENS avec les fonctions SI et NB.SI.ENS
Tu montes un petit tableau de bord d'atelier où l'on choisit un technicien et une machine pour voir la plus longue intervention du binôme. Le piège, c'est que certains binômes n'ont jamais travaillé ensemble, et dans ce cas la fonction MAX.SI.ENS ne proteste pas : elle affiche un 0 qui ressemble à s'y méprendre à une vraie durée. En l'encadrant par les fonctions SI et NB.SI.ENS, tu comptes d'abord les lignes concernées et tu n'affiches un maximum que s'il en existe réellement un.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris le test à vérifier et referme-le,
NB.SI.ENS(A2:A7; "Awa"; B2:B7; "Convoyeur")>0. La fonction NB.SI.ENS reprend les mêmes paires plage-critère que ta fonction MAX.SI.ENS et compte les lignes qui les respectent. Le>0répond alors à la seule question qui compte, celle de savoir s'il existe au moins une ligne à mesurer. - 3En 2ᵉ argument : écris ce qui s'affiche quand le compte est bon et referme la fonction,
MAX.SI.ENS(C2:C7; A2:A7; "Awa"; B2:B7; "Convoyeur"). Elle ne s'exécute que si le test précédent est vrai, donc son résultat est toujours un vrai maximum et jamais un0trompeur. - 4En 3ᵉ argument : saisis ce qui s'affiche quand le compte tombe à zéro,
"Aucune intervention". Ce message dit clairement ce que le0brut de la fonction MAX.SI.ENS laisse dans le flou. - 5Ferme la parenthèse de la fonction SI et appuie sur Entrée. Les fonctions NB.SI.ENS et MAX.SI.ENS ont déjà été refermées dans leurs étapes.
=SI(NB.SI.ENS(A2:A7; "Awa"; B2:B7; "Convoyeur")>0; MAX.SI.ENS(C2:C7; A2:A7; "Awa"; B2:B7; "Convoyeur"); "Aucune intervention")0, un chiffre qu'on lirait comme une intervention éclair alors qu'il ne s'est rien passé. Le comptage préalable de la fonction NB.SI.ENS trouve zéro ligne, la fonction SI bascule alors sur sa sortie de secours et affiche un texte sans ambiguïté.
Les erreurs fréquentes avec la fonction MAX.SI.ENS
Le souci le plus déroutant avec MAX.SI.ENS, c'est qu'elle ne crie presque jamais : quand aucune ligne ne respecte tes critères, elle renvoie un 0 tranquille, sans message, et tu ne sais pas si le maximum vaut vraiment zéro ou s'il n'y a aucune correspondance.
Les autres pièges viennent surtout du calage des plages, qui doivent toutes faire la même hauteur, et des nombres stockés en texte après un import : MAX.SI.ENS les ignore en silence et te ramène un résultat faussé.
Les plages n'ont pas la même taille
Si plage_max et tes plages_critères n'ont pas exactement le même nombre de lignes, Excel ne peut pas faire la correspondance et retourne une erreur. Par exemple, 100 lignes de ventes mais seulement 95 lignes dans la colonne Région.
Solution : Utilise des références de colonnes entières : C:C, D:D, etc. Excel s'occupe automatiquement d'aligner les lignes correctement.
Critères avec opérateurs mal formatés
Quand tu utilises un opérateur de comparaison (>, <, >=, etc.), tu dois mettre l'expression complète entre guillemets. Écrire >100 au lieu de ">100" provoque une erreur.
Solution : Mets toujours les opérateurs entre guillemets : ">100", "<>Paris", ">=50". Si ton critère est dans une cellule (ex: B10), utilise la concaténation : ">"&B10.
Aucune correspondance : la formule retourne 0
Si aucune ligne ne correspond à l'ensemble de tes critères, MAX.SI.ENS retourne 0. Ce n'est pas un message d'erreur, juste un zéro. Tu ne sais pas si c'est parce qu'il n'y a vraiment aucune correspondance ou si la valeur max est effectivement 0.
Solution : Combine avec NB.SI.ENS pour détecter l'absence de résultat : =SI(NB.SI.ENS(...)>0; MAX.SI.ENS(...); "Aucune donnée"). Tu affiches ainsi un message clair quand il n'y a pas de résultat.
Données texte ignorées dans la plage maximale
Si plage_max contient des nombres stockés en format texte (après un import CSV ou une copie depuis le web), MAX.SI.ENS les ignore complètement. Tu obtiens alors un résultat incohérent ou 0.
Solution : Sélectionne les cellules concernées, clique sur le triangle jaune d'avertissement et choisis "Convertir en nombre". Tu peux aussi utiliser CNUM() dans une colonne intermédiaire si tes données ne sont pas modifiables.

MAX.SI.ENS vs MAX vs GRANDE.VALEUR
Choisis MAX.SI.ENS dès que ton maximum dépend d'une ou plusieurs conditions (telle région, tel produit, un seuil) : c'est la seule des trois à savoir filtrer. Si tu veux juste la plus grande valeur d'une plage sans aucun tri, MAX est plus directe ; et quand tu cherches la 2e ou la 3e valeur, c'est GRANDE.VALEUR qu'il te faut, ni MAX ni MAX.SI.ENS ne sachant aller au-delà du tout premier maximum.
| Critère | MAX.SI.ENS | MAX | GRANDE.VALEUR |
|---|---|---|---|
| Avec critères | ✅ Oui (plusieurs) | ❌ Non | ❌ Non |
| Valeur max simple | ⚠️ Oui (sans critère) | ✅ Oui (direct) | ❌ Non |
| N-ième plus grande valeur | ❌ Non (que le max) | ❌ Non (que le max) | ✅ Oui (2e, 3e, etc.) |
| Nombre de critères | Jusqu'à 127 | Aucun | Aucun |
| Cas d'usage typique | Analyse avec filtres | Maximum global simple | Top 3, podium |

Astuces avancées avec MAX.SI.ENS
Retrouve toute la ligne avec INDEX et EQUIV
MAX.SI.ENS te donne la valeur maximale, mais pas les autres infos de cette ligne. Combine-la avec INDEX et EQUIV pour récupérer, par exemple, le nom du commercial qui a fait la meilleure vente : =INDEX(A:A; EQUIV(MAX.SI.ENS(C:C; B:B; "Nord"); C:C; 0)).
Tu obtiens directement le nom sans calcul supplémentaire.
Utilise des caractères génériques dans tes critères
Tu peux utiliser * (plusieurs caractères) ou ? (un seul caractère) dans tes critères texte. Par exemple, "Paris*" trouve "Paris", "Paris 15e", "Paris Nord", etc.
Pratique quand tes données ne sont pas parfaitement uniformes ou contiennent des variantes de saisie.
Nettoie tes données pour éviter les faux zéros
Si la formule retourne 0 alors que tu es certain que des lignes correspondent, vérifie les espaces invisibles dans tes cellules avec =SUPPRESPACE() et les nombres en format texte via le triangle jaune d'avertissement.
Un seul espace parasite suffit à fausser toute la correspondance.
Questions fréquentes
Non, Excel ne propose pas de fonction MAX.SI. Tu dois utiliser MAX.SI.ENS même pour un seul critère. Écris simplement =MAX.SI.ENS(plage_max; plage_critère1; critère1). C'est contre-intuitif par rapport à SOMME.SI, mais c'est le comportement d'Excel.
Si tu n'as pas besoin de critères, utilise simplement =MAX(plage). Elle retourne directement la plus grande valeur de ta plage. MAX.SI.ENS est uniquement utile quand tu as au moins un critère à respecter.
Oui, parfaitement. Excel stocke les dates comme des nombres, donc MAX.SI.ENS les traite naturellement. Tu peux trouver la date de livraison la plus récente d'un client précis, ou la dernière commande dans une catégorie donnée, avec la même syntaxe que pour des montants.
MAX.SI.ENS retourne 0 quand aucune cellule ne correspond à tes critères. Attention : ce n'est pas un message d'erreur, juste un zéro. Pour détecter ce cas, combine avec NB.SI.ENS : =SI(NB.SI.ENS(...)>0; MAX.SI.ENS(...); "Aucune donnée").
Absolument. Tu peux utiliser <, >, <=, >=, <> dans tes critères. Mets l'expression complète entre guillemets : ">100" pour supérieur à 100, "<>Paris" pour différent de Paris. Si le seuil est dans une cellule (B10), utilise la concaténation : ">"&B10.
Pour aller plus loin
Continue sur ta lancée après la fonction MAX.SI.ENS : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir




