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 de la fonction MAX.SI.ENS
=MAX.SI.ENS(plage_max; plage_critère1; critère1; [plage_critère2]; [critère2]; ...)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.
Astuce : Pour éviter les erreurs de taille, utilise des références de colonnes entières : =MAX.SI.ENS(C:C; A:A; "Nord"; B:B; "Laptop Pro"). Excel aligne automatiquement les lignes.
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.
Pas envie d'écrire la formule MAX.SI.ENS à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Responsable commercial : trouver la meilleure vente par région et produit
Tu prépares une présentation pour la direction et tu veux identifier la plus grosse transaction réalisée dans la région Nord pour le produit Laptop Pro. Tes commerciaux ont fait des dizaines de ventes sur plusieurs régions et produits : trouver cette valeur à la main serait long et risqué.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Commercial | Région | Produit | Montant |
| 2 | Sophie | Nord | Laptop Pro | 15 800 € |
| 3 | Marc | Sud | Laptop Pro | 12 500 € |
| 4 | Julie | Nord | Smartphone | 8 900 € |
| 5 | Paul | Nord | Laptop Pro | 22 400 € |
| 6 | Laura | Est | Laptop Pro | 9 700 € |
=MAX.SI.ENS(D:D; B:B; "Nord"; C:C; "Laptop Pro")La fonction examine toute la colonne des montants, garde uniquement les lignes où Région vaut "Nord" ET Produit vaut "Laptop Pro", puis retourne la plus grande valeur : c'est Paul qui a réalisé la meilleure vente avec 22 400 €.
Astuce de pro : Pour rendre les critères dynamiques, place-les dans des cellules (région en F1, produit en F2) et écris =MAX.SI.ENS(D:D; B:B; F1; C:C; F2). Quand tu changes F1 ou F2, le résultat se met à jour instantanément : idéal pour un tableau de bord interactif.
Responsable RH : identifier le salaire le plus élevé par département et ancienneté
Tu prépares les budgets de rémunération et tu dois établir les grilles salariales. Pour fixer un plafond cohérent, tu veux connaître le salaire maximum dans le département IT parmi les employés ayant plus de 5 ans d'ancienneté.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Employé | Département | Ancienneté | Salaire |
| 2 | Alice | IT | 8 | 75 000 € |
| 3 | Bob | RH | 6 | 52 000 € |
| 4 | Claire | IT | 3 | 48 000 € |
| 5 | David | IT | 12 | 92 000 € |
| 6 | Emma | Finance | 7 | 68 000 € |
=MAX.SI.ENS(D:D; B:B; "IT"; C:C; ">5")Ici, la fonction filtre sur Département="IT" ET Ancienneté>5, puis retourne le salaire le plus élevé dans cette sélection. David, avec 12 ans d'ancienneté, affiche le maximum : 92 000 €. Tu peux maintenant établir une fourchette haute cohérente pour les prochains recrutements ou promotions.
Responsable logistique : analyser le délai maximum par transporteur et destination
Tu veux identifier les problèmes de livraison récurrents. Tu cherches le pire délai enregistré avec le transporteur Express Logistics vers la région Île-de-France, pour savoir s'il y a un problème structurel.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | N° Colis | Transporteur | Destination | Délai (j) |
| 2 | #A123 | Express Logistics | Île-de-France | 3 |
| 3 | #B456 | Speed Deliver | Île-de-France | 2 |
| 4 | #C789 | Express Logistics | Provence | 4 |
| 5 | #D012 | Express Logistics | Île-de-France | 7 |
| 6 | #E345 | Express Logistics | Île-de-France | 5 |
=MAX.SI.ENS(D:D; B:B; "Express Logistics"; C:C; "Île-de-France")La fonction identifie le délai maximum parmi les colis concernés. Le colis #D012 a mis 7 jours : bien au-dessus de la moyenne. Avec cette information, tu peux contacter Express Logistics pour comprendre ce qui s'est passé et négocier un meilleur engagement de service.
Agent immobilier : trouver le bien le plus cher par ville et type
Un client cherche un appartement haut de gamme à Lyon. Avant de lui montrer les biens disponibles, tu veux identifier le prix maximum pratiqué pour un appartement dans cette ville, pour le préparer au budget nécessaire.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Référence | Ville | Type | Prix |
| 2 | LYON-01 | Lyon | Appartement | 380 000 € |
| 3 | PAR-12 | Paris | Appartement | 650 000 € |
| 4 | LYON-02 | Lyon | Maison | 520 000 € |
| 5 | LYON-03 | Lyon | Appartement | 485 000 € |
| 6 | MARS-05 | Marseille | Appartement | 295 000 € |
=MAX.SI.ENS(D:D; B:B; "Lyon"; C:C; "Appartement")Ici, la fonction filtre sur Ville="Lyon" ET Type="Appartement", puis retourne le prix le plus élevé. Le bien LYON-03 est l'appartement le plus cher de ta base : 485 000 €. Tu peux maintenant orienter ta recherche et tes conseils en conséquence.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes 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 sur la fonction MAX.SI.ENS
Existe-t-il une fonction MAX.SI avec un seul critère ?
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.
Comment trouver le maximum sans aucune condition ?
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.
MAX.SI.ENS fonctionne-t-elle avec des dates ?
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.
Que se passe-t-il si aucune valeur ne correspond aux critères ?
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").
Puis-je utiliser des opérateurs de comparaison dans les critères ?
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
Les fonctions similaires : MIN.SI.ENS, MAX, GRANDE.VALEUR, MOYENNE.SI.ENS, SOMME.SI.ENS
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

