Excel: Calculer un min ou un max conditionnel

Publié le 11 juin 2014
par Sophie Marchand M.Sc.
Min et max conditionnels

Fonctions conditionnelles dans Excel : maintenant aussi pour MIN et MAX !

Vous connaissez déjà les fonctions conditionnelles d’Excel comme SOMME.SI (SUMIF) et SOMME.SI.ENS (SUMIFS), NB.SI (COUNTIF) et NB.SI.ENS (COUNTIFS), ou encore MOYENNE.SI (AVERAGEIF) et MOYENNE.SI.ENS (AVERAGEIFS).

Pendant longtemps, Excel ne proposait aucune fonction native pour calculer un minimum ou un maximum conditionnel. On aurait pu s’attendre à trouver une fonction comme MIN.SI ou MAX.SI… mais elles n’existaient pas.

Bonne nouvelle : c’est désormais chose faite ! 
Avec l’arrivée des fonctions de calcul min MIN.SI.ENS et max conditionnel MAX.SI.ENS, vous pouvez maintenant calculer directement une valeur minimale ou maximale en fonction de plusieurs critères, sans avoir à créer de formules matricielles complexes.

Cette publication, écrite en 2014 par Sophie Marchand, à été mise à jour en juin 2025.

 

Les fonctions MIN et MAX de base

Débutons par un rappel. Les fonctions MIN() et MAX() permettent d’identifier, respectivement, la plus petite et la plus grande valeur dans une plage.
Exemple :

calculer un min (MIN.SI.ENS) et un max conditionnel (MAX.SI.ENS)

 

Ces fonctions ne tiennent aucun compte de critères comme le MAX conditionnel ou le MIN conditionnel.

 

Les nouvelles fonctions MIN.SI.ENS et MAX.SI.ENS

Voici comment calculer un min (MIN.SI.ENS) et un max conditionnel (MAX.SI.ENS). Supposons que vous souhaitiez obtenir le minimum ou maximum de ventes pour une catégorie précise (ex. : “Électronique”). Auparavant, il fallait recourir à une formule matricielle, de type MIN(SI(...)), ce qui impliquait d’utiliser Ctrl + Shift + Enter.

Aujourd’hui, vous pouvez simplement écrire :

=MIN.SI.ENS(plage_des_valeurs; plage_des_critères; "Électronique")

calculer un min (MIN.SI.ENS) et un max conditionnel (MAX.SI.ENS)

 

=MAX.SI.ENS(plage_des_valeurs; plage_des_critères; "Électronique")

 

Ces formules sont plus lisibles, plus rapides et plus faciles à maintenir.

Les fonctions MIN.SI.ENS et MAX.SI.ENS viennent compléter la gamme des fonctions conditionnelles dans Excel. Elles éliminent le besoin de formules matricielles pour des calculs pourtant courants et facilitent l’analyse de données complexes avec plusieurs critères.

 

Voyez le tout en action dans ces courtes vidéos

🎞️ Abonnez-vous à notre chaîne YouTube

Bon visionnement !


Fichier d’accompagnement VIP à télécharger

Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.


CFO-Masque_Formations-en-ligne_FBLa mission du CFO masqué est de développer les compétences techniques des analystes et des contrôleurs de gestion en informatique décisionnelle avec Excel et Power BI et favoriser l’atteinte de leur plein potentiel, en stimulant leur autonomie, leur curiosité, leur raisonnement logique, leur esprit critique et leur créativité.

14 réflexions sur “Excel: Calculer un min ou un max conditionnel”

  1. Ping : Un oeil sur le web | Excel: Calculer un min ou un max conditionnel

      1. SOMMEPROD ne fonctionne que pour le MAX conditionnel.
        Elle ne peut pas être utiliser pour le MIN, car elle retourne systématiquement 0 sur les valeurs qui ne répondent pas à la condition

  2. Hello, en VBA pour les inconditionnels:

    Public Function MINIF(ByVal rgeCriteria As Range, _
    ByVal sCriteria As String, _
    ByVal rgeMinRange As Range) As Single

    Dim iconditioncolno As Integer
    Dim inumberscolno As Integer
    Dim lrowno As Long
    Dim sngmin As Single
    Dim vcellvalue As Variant

    iconditioncolno = rgeCriteria.Column
    inumberscolno = rgeMinRange.Column
    For lrowno = 1 To rgeCriteria.Rows.Count
    vcellvalue = rgeCriteria.Parent.Cells(rgeCriteria.Row + lrowno – 1, inumberscolno).Value
    If rgeCriteria.Parent.Cells(rgeCriteria.Row + lrowno – 1, iconditioncolno).Value = sCriteria And _
    IsNumeric(vcellvalue) = True Then
    If sngmin = 0 Then sngmin = vcellvalue
    If vcellvalue < sngmin Then sngmin = vcellvalue
    End If

    If sngmin 0 And IsEmpty(vcellvalue) = True Then Exit For
    Next lrowno

    For lrowno = 1 To rgeCriteria.Rows.Count
    vcellvalue = rgeCriteria.Parent.Cells(rgeCriteria.Row + lrowno – 1, inumberscolno).Value
    If rgeCriteria.Parent.Cells(rgeCriteria.Row + lrowno – 1, iconditioncolno).Value = sCriteria And _
    IsNumeric(vcellvalue) = True Then
    If rgeCriteria.Parent.Cells(rgeCriteria.Row + lrowno – 1, inumberscolno).Value < sngmin Then
    sngmin = rgeCriteria.Parent.Cells(rgeCriteria.Row + lrowno – 1, inumberscolno).Value
    End If
    End If

    If sngmin 0 And IsEmpty(vcellvalue) = True Then Exit For
    Next lrowno

    MINIF = sngmin
    End Function

  3. Ping : Schoch (sischo) | Pearltrees

  4. Bonjour,

    Peut-être que SOMMEPROD ne fonctionne que pour le MAX conditionnel et pas pour le MIN conditionnel, et si inversait le rapport ? On créé, pour le calcul, le même tableau avec les nombres inversés (1/Nombre), puis on utilise SOMMEPROD sur ce tableau pour obtenir le max, on inverse le résultat et ça nous donne le MIN, non ? Du moment qu’une des valeurs n’est pas nulle… Et si on a des valeurs nulles, pour le tableau inversé, on utilise une formule SIERREUR et on choisit 10^24 (ou plus grand possible si nécessaire…) dans le cas en erreur de l’inverse de 0, le résultat de 1/10^24 sera très proche de 0, CQFD :o)

    1. Bonjour,

      Veuillez noter que cet article a été rédigé en 2014. Il existe désormais les fonctions MAX.SI.ENS et MIN.SI.ENS.

      Au plaisir,

      Sophie

  5. Galopin voulait sans doute dire que bien que les fonctions MIN.SI.ENS et MAX.SI.ENS ont, comme vous l’indiquez, vus le jour depuis la création de cet article, il n’est néanmoins pas toujours possible de les utiliser, soit parce que sa propre version d’Excel ne les intègre pas, soit pour éviter que les utilisateurs auxquels on adresse un fichier Excel n’obtiennent une erreur dans le cas où leur version d’Excel n’intégrerait pas ces fonctions.

  6. Bonjour!
    Merci pour le cours de l’imbrication du si(if) dans le min!
    J’ai constaté la présence de virgule (,) au lieu de point-virgule (;). Prière modifier!

    1. Bonjour!

      L’utilisation de la virgule ou du point-virgule dans la formule dépend des paramètres régionaux de chaque ordinateur.
      Les 2 options sont possibles.

      Bonne journée!
      Audrée

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *


Retour en haut