Aller au contenu principal

Qu'est-ce que la fonction MAX.SI.ENS ?

Définition
La fonction MAX.SI.ENS retourne la valeur maximale d'une plage pour toutes les lignes qui respectent simultanément tous les critères définis. Elle accepte jusqu'à 127 paires plage/critère.

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

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).

Le savais-tu ?
Ne cherche pas de fonction MAX.SI : elle n'existe pas. Même avec un seul critère, tu passes par MAX.SI.ENS, comme MAX.SI.ENS(plage_max; plage_critère1; critère1). C'est contre-intuitif quand on vient de SOMME.SI.
Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

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.

1

plage_max

: la plage dans laquelle Excel cherche la valeur maximale

Par 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.

2

plage_critère1

: la première plage dans laquelle Excel vérifie ton premier critère

Elle 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.

3

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.

4

[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.

Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

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.

Les étapes
  1. 1
    Dans une cellule, écris =MAX.SI.ENS(.
  2. 2
    En 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.
  3. 3
    En 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.
  4. 4
    En 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.
  5. 5
    En 4ᵉ argument : sélectionne la colonne Commercial, B2:B15. Comme la précédente, elle s'aligne ligne à ligne sur la colonne Montant.
  6. 6
    En 5ᵉ argument : clique sur la cellule qui porte le nom du commercial à étudier, G7. Les deux conditions se cumulent, donc seules les lignes à la fois Paris et Martin sont retenues.
  7. 7
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=MAX.SI.ENS(D2:D15; A2:A15; G4; B2:B15; G7)
Explication
La fonction parcourt la colonne des montants, ne retient que les lignes où la région vaut 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.
Exemple 2

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.

Les étapes
  1. 1
    Dans une cellule, écris =MAX.SI.ENS(.
  2. 2
    En 1er argument : sélectionne la colonne Prix, D2:D7. C'est dans cette plage que la fonction va chercher la plus grande valeur.
  3. 3
    En 2ᵉ argument : sélectionne la colonne Ville, B2:B7. C'est sur elle que porte ta condition texte.
  4. 4
    En 3ᵉ argument : saisis la ville à isoler, "Lyon". Un critère texte se met entre guillemets, sans opérateur ni signe égal devant.
  5. 5
    En 4ᵉ argument : sélectionne la colonne Surface, C2:C7. Cette fois la condition va porter sur un nombre.
  6. 6
    En 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.
  7. 7
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=MAX.SI.ENS(D2:D7; B2:B7; "Lyon"; C2:C7; ">=60")
Explication
Le second critère s'écrit ">=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.
Exemple 3

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.

Les étapes
  1. 1
    Dans une cellule, écris =MAX.SI.ENS(.
  2. 2
    En 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.
  3. 3
    En 2ᵉ argument : sélectionne la colonne Boutique, B2:B8. C'est sur elle que porte ta condition sur le magasin.
  4. 4
    En 3ᵉ argument : saisis le nom de la boutique à isoler, "Lille". Les autres boutiques sortent du calcul dès cette condition.
  5. 5
    En 4ᵉ argument : sélectionne la colonne Date, A2:A8. C'est elle qui va porter la borne de début du trimestre.
  6. 6
    En 5ᵉ argument : saisis la borne de début sous la forme ">="&F2, où F2 contient le 01/01/2026. L'esperluette soude l'opérateur à la date de la cellule ; sans elle, la formule chercherait littéralement le texte >=F2 dans tes dates et ne trouverait rien.
  7. 7
    En 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.
  8. 8
    En 7ᵉ argument : saisis la borne de fin sous la forme "<="&F3, avec le 31/03/2026 dans F3. Les trois conditions se cumulent, donc seules les journées lilloises comprises entre les deux bornes sont retenues.
  9. 9
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=MAX.SI.ENS(C2:C8; B2:B8; "Lille"; A2:A8; ">="&F2; A2:A8; "<="&F3)
Explication
Deux paires visent la même colonne de dates, l'une pour la borne basse et l'autre pour la borne haute : c'est ainsi que la fonction MAX.SI.ENS enferme un calcul dans une période. La journée du 14 avril (9 300 €) est bien la meilleure de Lille toutes dates confondues, mais elle tombe hors du trimestre et se fait écarter. Le maximum retenu est donc celui du 3 mars, à 7 400 €.
Exemple 4

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.

Les étapes
  1. 1
    Dans une cellule, écris =SI(.
  2. 2
    En 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 >0 répond alors à la seule question qui compte, celle de savoir s'il existe au moins une ligne à mesurer.
  3. 3
    En 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 un 0 trompeur.
  4. 4
    En 3ᵉ argument : saisis ce qui s'affiche quand le compte tombe à zéro, "Aucune intervention". Ce message dit clairement ce que le 0 brut de la fonction MAX.SI.ENS laisse dans le flou.
  5. 5
    Ferme 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.
En mettant tout bout à bout, tu écris :=SI(NB.SI.ENS(A2:A7; "Awa"; B2:B7; "Convoyeur")>0; MAX.SI.ENS(C2:C7; A2:A7; "Awa"; B2:B7; "Convoyeur"); "Aucune intervention")
Explication
Awa et le convoyeur figurent tous les deux dans le tableau, mais jamais sur la même ligne. Seule, la fonction MAX.SI.ENS renverrait 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é.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

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.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

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èreMAX.SI.ENSMAXGRANDE.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èresJusqu'à 127AucunAucun
Cas d'usage typiqueAnalyse avec filtresMaximum global simpleTop 3, podium
L’erreur fatale
Quand aucune ligne ne respecte tes critères, MAX.SI.ENS renvoie un 0 tout tranquille, sans erreur. Impossible de savoir si le maximum vaut vraiment zéro ou s'il n'y a aucune correspondance. Encadre-la : SI(NB.SI.ENS(...)>0; MAX.SI.ENS(...); « Aucune donnée »).
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec MAX.SI.ENS

1Astuce

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.

2Astuce

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.

3Astuce

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.

FAQ

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.

Ressources

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