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.
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 :
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")
=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é.

Ping : Un oeil sur le web | Excel: Calculer un min ou un max conditionnel
Intéressant. Si l’on veut une formule non-matricielle, on peut utiliser aussi sommeprod
=SUMPRODUCT(MAX((B6:B17=E12)*C6:C17))
SOMMEPRODUIT : excellente suggestion qui marche très bien et me paraît plus simple à mettre en œuvre.
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
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
Ping : Schoch (sischo) | Pearltrees
Merci pour l’astuce
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)
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
Bonjour,
Uniquement sur la version 2019 et Office 365.
Beaucoup d’entreprises n’ont pas encore basculé sur ces versions.
Merci.
Bonjour,
Je crois que vous n’avez pas pris le temps de lire l’article. Il a été rédigé en 2014 donc il n’utilise pas la version 2019 ni office 365.
Au plaisir,
Sophie
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.
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!
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