Qu'est-ce que la fonction MIN. SI. ENS ?
MIN.SI.ENS (MINIFS en anglais) te permet de trouver la valeur minimale dans un ensemble de données en appliquant plusieurs critères simultanément. Au lieu de filtrer manuellement ton tableau puis de chercher le minimum à la main, tu poses tes conditions directement dans la formule et Excel fait le tri tout seul.
C'est l'outil qu'il te faut pour identifier le meilleur prix fournisseur sur un produit précis avec des fournisseurs actifs, le délai de livraison le plus court pour une région en excluant les transporteurs peu fiables, le salaire plancher d'un département et d'un niveau donné, ou le coût minimal dans une catégorie et un trimestre spécifiques. Disponible depuis Excel 2016.
Syntaxe
=MIN.SI.ENS(plage_min; plage_critère1; critère1; [plage_critère2]; [critère2]; ...)Clique sur un argument pour aller à son explication.
Toutes les plages (plage_min et plage_critèreN) doivent avoir exactement la même taille. Une différence d'une seule ligne suffit à provoquer l'erreur #VALEUR!.

Comprendre chaque paramètre de la fonction MIN.SI.ENS
L'argument à minimiser vient toujours en premier (plage_min), suivi de tes conditions par paires : une plage à examiner, puis le critère qu'elle doit remplir. La première paire est obligatoire, les 125 suivantes facultatives.
Retiens que plage_min reste à part : c'est la colonne où tu cherches le plus petit nombre, jamais une colonne de filtrage.
plage_min
: la plage de cellules dans laquelle tu veux trouver le minimumPar exemple, pour le prix le plus bas, plage_min sera ta colonne de prix comme C2:C100. Cette plage doit contenir des valeurs numériques.
Cette plage est distincte des plages de critères : elle contient les valeurs à minimiser, pas les conditions de filtrage.
plage_critère1
: la première plage de cellules à évaluer pour le premier critèreSi tu veux filtrer par catégorie de produit, plage_critère1 sera ta colonne de catégories comme A2:A100.
Règle d'or : les plages de critères doivent avoir exactement la même taille que plage_min. Si plage_min fait 99 lignes, toutes tes plages de critères doivent aussi en faire 99.
critère1
: la condition que les cellules de `plage_critère1` doivent remplirTu peux utiliser un texte comme "Électronique", un nombre comme 100, une référence de cellule comme D5, ou une comparaison comme ">50" ou "<>Annulé".
Pour les comparaisons avec une cellule, concatène l'opérateur avec & : ">"&D5 ou "<>"&D5.
[plage_critère2]; [critère2]; ...
: tu peux ajouter jusqu'à 125 paires supplémentaires de plages et critères(facultatif)Chaque paire ajoute une condition supplémentaire. La logique est ET : toutes les conditions doivent être vraies simultanément pour qu'une ligne entre dans le calcul du minimum.
Si tu veux une logique OU (minimum pour Paris OU Lyon), combine plusieurs MIN.SI.ENS avec MIN : =MIN(MIN.SI.ENS(C:C; B:B; "Paris"); MIN.SI.ENS(C:C; B:B; "Lyon")).

Exemples pratiques pas à pas
Comment trouver la valeur minimale sous plusieurs conditions avec la fonction MIN.SI.ENS
Ton atelier tourne avec des Vis 8mm et tu dois relancer une commande aujourd'hui au meilleur prix possible. Ton tableau liste chaque tarif relevé avec son fournisseur et le statut du contrat, sauf que les fournisseurs inactifs ne peuvent plus te livrer et que leurs prix, souvent les plus bas, faussent la comparaison. La fonction MIN.SI.ENS te sort le prix le plus bas des Vis 8mm encore disponibles, sans que tu aies à filtrer ton tableau.
- 1Dans une cellule, écris
=MIN.SI.ENS(. - 2En 1er argument : sélectionne la colonne des prix où Excel cherche le plus petit nombre,
B2:B19. C'est la seule plage dont une valeur ressortira, jamais une colonne de filtrage. - 3En 2ᵉ argument : sélectionne la colonne des produits que la première condition examine,
A2:A19. Elle couvre exactement les mêmes lignes que la plage précédente, de la ligne 2 à la ligne 19. - 4En 3ᵉ argument : écris la condition que cette colonne doit remplir,
"Vis 8mm". Les guillemets sont obligatoires parce qu'il s'agit de texte, et les vis 6mm et 10mm sortent alors du calcul. - 5En 4ᵉ argument : sélectionne la colonne des statuts que la seconde condition examine,
C2:C19. Chaque condition supplémentaire s'écrit toujours par paire, la plage d'abord et le critère ensuite. - 6En 5ᵉ argument : écris le statut à conserver,
"Actif". Il écarte les fournisseurs avec qui tu ne travailles plus, et les deux conditions doivent être vraies ensemble pour qu'une ligne entre dans le calcul. - 7Ferme la parenthèse et appuie sur Entrée.
=MIN.SI.ENS(B2:B19; A2:A19; "Vis 8mm"; C2:C19; "Actif")Vis 8mm et le statut Actif), puis renvoie le plus petit prix de celles qui restent. Visserie Fr est écarté malgré son tarif de 1,20 € parce que son statut est Inactif, et le minimum retenu est le 1,80 € de Métal Pro.Comment utiliser un opérateur de comparaison en critère de la fonction MIN.SI.ENS
Un client t'appelle pour savoir sous combien de jours tu peux le livrer en Île-de-France, et tu ne veux pas t'engager sur un transporteur qui rate une expédition sur dix. Ton tableau liste chaque transporteur avec sa région, son délai et son taux de fiabilité, et tu cherches le délai le plus court parmi ceux qui tiennent au moins 95 % de leurs promesses. La fonction MIN.SI.ENS croise la région et le seuil de fiabilité pour ne compter que les transporteurs sur lesquels tu peux vraiment t'appuyer.
- 1Dans une cellule, écris
=MIN.SI.ENS(. - 2En 1er argument : sélectionne la colonne des délais où trouver la plus petite valeur,
C2:C7. C'est le nombre de jours que tu veux voir descendre au plus bas. - 3En 2ᵉ argument : sélectionne la colonne des régions que la première condition examine,
B2:B7. - 4En 3ᵉ argument : écris la région à retenir,
"Île-de-France". C'est une égalité de texte toute simple, entre guillemets. - 5En 4ᵉ argument : sélectionne la colonne des fiabilités que la seconde condition examine,
D2:D7. Elle porte cette fois des nombres et non du texte. - 6En 5ᵉ argument : écris le seuil de fiabilité,
">=95". L'opérateur et le nombre voyagent ensemble dans une seule chaîne entre guillemets, ce qui transforme une égalité stricte en seuil. Tu peux écrire de la même façon">100","<50"ou"<>0". - 7Ferme la parenthèse et appuie sur Entrée.
=MIN.SI.ENS(C2:C7; B2:B7; "Île-de-France"; D2:D7; ">=95")">=95" s'écrit entre guillemets, opérateur compris, pour ne retenir que les fiabilités au-dessus du seuil. Speed Log est écarté malgré son délai d'un seul jour (sa fiabilité tombe à 92), et Quick Trans parce qu'il livre en Provence. Le délai le plus court qui reste est donc de 2 jours.Comment trouver le minimum sur une période avec la fonction MIN.SI.ENS
Tu négocies ton prochain contrat d'aluminium et l'acheteur d'en face jure que son tarif est « au plus bas du marché ». Tu as relevé le cours à chaque livraison depuis des mois, et tu veux savoir jusqu'où il est réellement descendu au premier trimestre 2026, sans que les cours de décembre ou d'avril viennent brouiller la comparaison. La fonction MIN.SI.ENS accepte deux fois la même colonne de dates, une fois pour chaque borne, et te donne le cours le plus bas de la période.
- 1Dans une cellule, écris
=MIN.SI.ENS(. - 2En 1er argument : sélectionne la colonne des cours où trouver la plus petite valeur,
B2:B8. C'est bien le prix que tu veux voir descendre au plus bas, pas la date. - 3En 2ᵉ argument : sélectionne la colonne des dates que la première condition examine,
A2:A8. C'est sur elle que va porter la borne basse de ta période. - 4En 3ᵉ argument : écris la borne de début,
">="&DATE(2026;1;1). Le&colle l'opérateur>=au 1er janvier, et la fonction DATE évite d'écrire la date en texte, ce qui la rendrait incomparable. - 5En 4ᵉ argument : sélectionne de nouveau la colonne des dates,
A2:A8. Rien n'interdit d'interroger deux fois la même plage, et c'est justement ce qui permet d'encadrer une période. - 6En 5ᵉ argument : écris la borne de fin,
"<="&DATE(2026;3;31). Les deux conditions étant liées par un ET, seules les lignes comprises entre les deux dates sont retenues. - 7Ferme la parenthèse et appuie sur Entrée.
=MIN.SI.ENS(B2:B8; A2:A8; ">="&DATE(2026;1;1); A2:A8; "<="&DATE(2026;3;31))& sert à coller l'opérateur devant la date, parce qu'un critère ne peut pas contenir une fonction directement. Le cours de 1,90 € du 18 décembre et celui de 1,80 € du 9 avril tombent hors période, donc le plus bas du trimestre est 1,95 €.Comment afficher un message plutôt que 0 avec les fonctions MIN.SI.ENS et SI
Tu diffuses chaque lundi un tableau de bord des dépenses, et on t'a fait remarquer un « 0 € » qui n'existait pas : la logistique n'avait tout simplement rien dépensé au T2, mais ton tableau annonçait une dépense minimale de zéro euro. Tes dépenses sont listées par catégorie et par trimestre, et tu veux qu'une combinaison sans aucune ligne le dise franchement plutôt que d'afficher un chiffre trompeur. La fonction MIN.SI.ENS renvoie 0 quand rien ne correspond, donc tu l'encadres pour distinguer un vrai minimum d'une absence de dépense.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris le test qui vérifie s'il existe des lignes,
NB.SI.ENS(A2:A7; "Logistique"; B2:B7; "T2")=0. Reprends exactement les mêmes plages et les mêmes critères que ta fonction MIN.SI.ENS, sinon le garde-fou surveille autre chose que ton calcul. - 3En 2ᵉ argument : écris le message à lire quand aucune ligne ne correspond,
"Aucune dépense". Les guillemets sont obligatoires parce que c'est du texte, et ce libellé ne pourra jamais être confondu avec un montant. - 4En 3ᵉ argument : écris la fonction MIN.SI.ENS elle-même,
MIN.SI.ENS(C2:C7; A2:A7; "Logistique"; B2:B7; "T2"). Elle ne se déclenche que lorsqu'au moins une ligne correspond, donc son résultat est forcément un minimum authentique. - 5Ferme la parenthèse de la fonction SI et appuie sur Entrée. Celle de MIN.SI.ENS a déjà été refermée à l'étape précédente.
=SI(NB.SI.ENS(A2:A7; "Logistique"; B2:B7; "T2")=0; "Aucune dépense"; MIN.SI.ENS(C2:C7; A2:A7; "Logistique"; B2:B7; "T2"))0 pour une combinaison qui n'existe pas, et un 0 se lit comme un montant bien réel. La fonction NB.SI.ENS compte d'abord les lignes qui remplissent les mêmes critères (ici aucune, la logistique n'a rien dépensé au T2), et la fonction SI affiche le message à la place du faux minimum.
Les erreurs fréquentes avec la fonction MIN.SI.ENS
MIN.SI.ENS ne te jette pas un code rouge : neuf fois sur dix elle renvoie discrètement 0, ce qui veut dire qu'aucune ligne n'a coché tous tes critères. Un espace en trop, une majuscule différente ou un nombre stocké en texte suffit à ce qu'elle ne trouve rien.
L'autre piège est #VALEUR!, qui apparaît dès que plage_min et tes plages de critères n'ont pas exactement le même nombre de lignes.
La formule retourne 0 alors qu'il y a des valeurs correspondantes
C'est l'erreur la plus courante. Quand aucune cellule ne correspond à tous tes critères, MIN.SI.ENS retourne 0. Le problème est que 0 peut aussi être une valeur valide dans tes données, rendant le résultat ambigu. Les causes les plus fréquentes sont des espaces invisibles, des différences de casse, ou des nombres stockés en format texte.
Solution : Utilise =NB.SI.ENS(plage_critère1; critère1; ...) avec exactement les mêmes critères pour compter les lignes correspondantes. Si le résultat est 0, tes critères sont trop restrictifs ou mal orthographiés. Si le résultat est positif, le problème vient du format de plage_min : convertis tes nombres avec =CNUM(cellule) ou via le triangle vert d'avertissement.
Erreur #VALEUR! : les plages n'ont pas la même taille
Excel affiche #VALEUR! quand plage_min et les plages de critères n'ont pas exactement le même nombre de lignes. Par exemple, plage_min en C2:C100 et plage_critère1 en A1:A100 provoquent cette erreur car C2:C100 fait 99 lignes et A1:A100 en fait 100.
Solution : Assure-toi que toutes tes plages commencent et se terminent à la même ligne. Utilise soit des colonnes entières (C:C et A:A) soit des plages avec exactement les mêmes coordonnées (C2:C100 et A2:A100).
Les comparaisons numériques ne donnent pas de résultat
Tu écris =MIN.SI.ENS(A:A; B:B; ">100") mais la formule retourne 0 alors que des valeurs dépassent 100. Souvent, les nombres dans la colonne B sont stockés en format texte : Excel ne peut pas les comparer numériquement.
Solution : Sélectionne la colonne, clique sur le triangle vert d'avertissement et choisis « Convertir en nombre ». Tu peux aussi sélectionner une cellule vide contenant 1, copier, sélectionner ta plage problématique, puis Collage spécial > Multiplier.
Résultat erroné avec MIN(SI()) matriciel à la place de MIN.SI.ENS
Certains utilisateurs utilisent encore =MIN(SI(condition; plage)) validé en Ctrl+Shift+Entrée. Cette syntaxe fonctionne mais est plus lente, plus difficile à lire, et plus sujette aux erreurs qu'une formule MIN.SI.ENS directe.
Solution : Remplace la formule matricielle par =MIN.SI.ENS(plage_min; plage_critère; critère). La syntaxe est plus intuitive, la performance meilleure, et aucune validation spéciale n'est requise.

MIN.SI.ENS vs MIN vs MIN + SI matriciel
Prends MIN.SI.ENS dès que ton minimum dépend d'une ou plusieurs conditions. Si tu cherches juste le plus petit nombre d'une colonne sans filtre, le simple MIN suffit et va plus vite.
Le vieux MIN(SI()) matriciel ne se justifie plus que sur Excel antérieur à 2016 : ailleurs il est plus lent, moins lisible et impose le Ctrl+Shift+Entrée.
| Critère | MIN.SI.ENS | MIN simple | MIN + SI matriciel |
|---|---|---|---|
| Critères multiples | Jusqu'à 126 paires | Aucun critère | Oui (complexe) |
| Facilité | ⭐⭐⭐ | ⭐⭐⭐ | ⭐ |
| Performance | Rapide | Très rapide | Lent |
| Compatibilité | Excel 2016+ | Toutes versions | Toutes versions |
| Cas d'usage idéal | Analyse conditionnelle | Minimum sans condition | Excel pré-2016 |

Astuces avancées avec MIN.SI.ENS
Récupère la ligne complète du minimum avec INDEX/EQUIV
MIN.SI.ENS te donne la valeur minimale, mais tu veux souvent connaître aussi le fournisseur, la date ou d'autres détails de la même ligne. Combine MIN.SI.ENS avec INDEX et EQUIV : =INDEX(A:A; EQUIV(MIN.SI.ENS(C:C; B:B; "IT"); C:C; 0)) retourne le nom dans la colonne A de la ligne qui contient le minimum trouvé dans C:C pour les entrées IT.
Cette technique est particulièrement utile dans les tableaux de bord où tu as besoin d'identifier qui ou quoi correspond au meilleur résultat.
Gère la logique OU avec plusieurs MIN.SI.ENS imbriqués dans MIN
MIN.SI.ENS utilise une logique ET : toutes les conditions doivent être vraies. Pour une logique OU, c'est-à-dire le minimum pour la région Paris OU Lyon, encapsule plusieurs MIN.SI.ENS dans une fonction MIN : =MIN(MIN.SI.ENS(C:C; B:B; "Paris"); MIN.SI.ENS(C:C; B:B; "Lyon")) retourne le minimum des deux régions sans avoir besoin de formules matricielles.
Cette syntaxe reste lisible même avec 3 ou 4 régions.
Crée des critères dynamiques basés sur la date du jour
Pour suivre le minimum de l'année en cours sans toucher à la formule, utilise =MIN.SI.ENS(A:A; B:B; ">="&DATE(ANNEE(AUJOURDHUI()); 1; 1)). La date pivot se recalcule automatiquement au 1er janvier de chaque année.
Cette technique est la base des tableaux de bord qui se mettent à jour sans maintenance manuelle.
Questions fréquentes
Tes critères ne correspondent à aucune cellule. Vérifie les espaces invisibles, les différences de casse, ou le format des cellules (texte vs nombre). Utilise =NB.SI.ENS(plage_critère1; critère1; ...) avec les mêmes critères pour compter les lignes correspondantes. Si le résultat est 0, le problème vient des critères eux-mêmes.
Oui, les dates sont des nombres pour Excel. Tu peux écrire =MIN.SI.ENS(A:A; B:B; ">"&DATE(2024;1;1)) pour trouver la date minimale après le 1er janvier 2024. La fonction DATE te permet de créer des critères dynamiques qui restent justes d'une année sur l'autre.
Non, Excel ne propose que MIN.SI.ENS qui accepte plusieurs critères. Si tu n'as qu'un seul critère, utilise MIN.SI.ENS avec une seule paire plage/critère. La syntaxe est exactement la même, tu omets simplement les paires supplémentaires.
MIN.SI.ENS retourne 0 quand aucune cellule ne correspond, ce qui peut être trompeur si 0 est une valeur valide dans tes données. Utilise =SI(NB.SI.ENS(plage_critère1; critère1)=0; "Aucune correspondance"; MIN.SI.ENS(...)) pour afficher un message clair quand il n'y a pas de résultat.
Oui. Le * remplace plusieurs caractères et le ? remplace un seul. Par exemple, =MIN.SI.ENS(A:A; B:B; "Paris*") trouve le minimum pour toutes les cellules commençant par Paris (Paris, Paris 15, Parisien...). Très utile pour les recherches approximatives sur des libellés non standardisés.
Pour aller plus loin
Continue sur ta lancée après la fonction MIN.SI.ENS : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir




