Aller au contenu principal

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

Définition
La fonction MIN.SI.ENS retourne la valeur minimale d'une plage parmi les cellules qui satisfont tous les critères spécifiés. Elle peut accepter jusqu'à 126 paires plage/critère.

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

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

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

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.

1

plage_min

: la plage de cellules dans laquelle tu veux trouver le minimum

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

2

plage_critère1

: la première plage de cellules à évaluer pour le premier critère

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

3

critère1

: la condition que les cellules de `plage_critère1` doivent remplir

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

4

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

Le conseil du pro
Plutôt que de figer tes critères dans la formule, pointe-les vers des cellules : =MIN.SI.ENS(C:C; B:B; G2; D:D; H2) où G2 contient le produit et H2 le statut. Tu obtiens un mini-outil de recherche que tu pilotes sans jamais retoucher la formule.
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 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.

Les étapes
  1. 1
    Dans une cellule, écris =MIN.SI.ENS(.
  2. 2
    En 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.
  3. 3
    En 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.
  4. 4
    En 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.
  5. 5
    En 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.
  6. 6
    En 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.
  7. 7
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=MIN.SI.ENS(B2:B19; A2:A19; "Vis 8mm"; C2:C19; "Actif")
Explication
La fonction ne garde que les lignes qui cochent les deux conditions en même temps (le produit 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.
Exemple 2

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.

Les étapes
  1. 1
    Dans une cellule, écris =MIN.SI.ENS(.
  2. 2
    En 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.
  3. 3
    En 2ᵉ argument : sélectionne la colonne des régions que la première condition examine, B2:B7.
  4. 4
    En 3ᵉ argument : écris la région à retenir, "Île-de-France". C'est une égalité de texte toute simple, entre guillemets.
  5. 5
    En 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.
  6. 6
    En 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".
  7. 7
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=MIN.SI.ENS(C2:C7; B2:B7; "Île-de-France"; D2:D7; ">=95")
Explication
Ici, la fonction ne se contente pas d'une égalité : le critère ">=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.
Exemple 3

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.

Les étapes
  1. 1
    Dans une cellule, écris =MIN.SI.ENS(.
  2. 2
    En 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.
  3. 3
    En 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.
  4. 4
    En 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.
  5. 5
    En 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.
  6. 6
    En 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.
  7. 7
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=MIN.SI.ENS(B2:B8; A2:A8; ">="&DATE(2026;1;1); A2:A8; "<="&DATE(2026;3;31))
Explication
La formule pose deux conditions sur la même colonne de dates, une pour chaque borne, et l'intersection des deux découpe pile le premier trimestre. Le & 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 €.
Exemple 4

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.

Les étapes
  1. 1
    Dans une cellule, écris =SI(.
  2. 2
    En 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.
  3. 3
    En 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.
  4. 4
    En 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.
  5. 5
    Ferme 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.
En mettant tout bout à bout, tu écris :=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"))
Explication
Sans ce garde-fou, la fonction MIN.SI.ENS renverrait 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.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

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.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

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èreMIN.SI.ENSMIN simpleMIN + SI matriciel
Critères multiplesJusqu'à 126 pairesAucun critèreOui (complexe)
Facilité⭐⭐⭐⭐⭐⭐
PerformanceRapideTrès rapideLent
CompatibilitéExcel 2016+Toutes versionsToutes versions
Cas d'usage idéalAnalyse conditionnelleMinimum sans conditionExcel pré-2016
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec MIN.SI.ENS

1Astuce

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.

2Astuce

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.

3Astuce

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.

Le combo gagnant
MIN.SI.ENS te donne la valeur la plus basse, mais rarement la ligne qui va avec. Emboîte-la dans INDEX et EQUIV : EQUIV(MIN.SI.ENS(...); C:C; 0) retrouve la position du minimum, et INDEX ramène le fournisseur, la date ou n'importe quelle autre colonne de cette ligne.
FAQ

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.

Ressources

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