Excel: Calculer un min ou un max conditionnel

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

Excel: Calculer un min ou un max conditionnel

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) et Moyenne.si (Averageif) et Moyenne.si.ens (Averageifs). Mais Excel ne fournit aucune fonction pour calculer un mininum ou un maximum conditionnel. On pourrait penser qu’Excel donnerait accès à une formule du genre Min.Si (MinIF) ou Max.si (MaxIf), mais ce n’est pas le cas. Toutefois, il n’est pas, pour autant, impossible d’effectuer un calcul de minimum ou de maximum conditionnel, tel que vous le verrez dans cet article.

 

Les fonctions Min et Max de base

Débutons par l’usage conventionnel des fonctions Min et Max dans Excel. Dans l’exemple ci-bas, nous cherchons à connaître la valeur minimale et la valeur maximale des ventes contenues dans la table de référence. Pour ce faire, nous utilisons la fonction Min() et Max(). Le seul paramètre à inclure dans ces formules est la plage de référence.

Min et max conditionnels

 

Les fonctions Min et Max conditionnelles

Dans l’exemple ci-bas, nous souhaitons trouver le Min et le Max mais pour une plage de données restreinte par la catégorie des ventes. Ainsi, nous avons élaboré un petit menu déroulant pour identifier la catégorie désirée.

Min et max conditionnels

 

Nous avons ensuite écrit la formule suivante, qui est une fonction Si (If), imbriquée dans une fonction Min ou Max, selon le cas. Dans la fonction Si (If), nous avons utilisé deux paramètres. Le premier paramètre spécifie le nom de la catégorie à considérer dans la table de référence, le deuxième réfère à la colonne de ventes de la table de données. Ensuite, nous cherchons le minimum ou le maximum de ce résultat.

Min et max conditionnels

 

Mais attention! Il s’agit ici d’une formule matricielle. Alors, comme avec toutes les formules matricielles, au lieu d’appuyer sur Enter lorsque vous avez terminé de rédiger votre formule, vous devez plutôt appuyer sur CSE (Ctrl+Shift+Enter). Vous verrez alors les accolades apparaître au début et à la fin de votre formule.

Min et max conditionnels

 

CFO-Masque_Formations-en-ligne_FB Le CFO masqué offre un vaste choix de formations en informatique décisionnelle avec Excel et Power BI, via un portail en ligne et à distance en temps réel, selon un calendrier. Si vous désirez organiser des formations privées, faites nous simplement parvenir un courriel à info@lecfomasque.com . Des certificats convenant aux normes de formation continue des divers ordres professionnels du Québec sont offerts pour l'ensemble des formations.  

Découvrez quelles formations vous conviennent

 

7 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

Laisser un commentaire

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

Scroll to Top