Calculer le minimum ou le maximum basé sur un critère avec Excel

(Last Updated On: 15 avril 2020)

Vous connaissez sûrement la formule SOMME.SI pour calculer une somme conditionnelle  basé sur un critère, et SOMME.SI.ENS pour calculer la somme d’un ensemble de données selon plusieurs conditions (lisez cet article pour en savoir plus).

Seulement les anciennes versions d’Excel ne proposent pas l’équivalent de la formule MIN.SI pour calculer une valeur minimale ou MAX.SI pour calculer la valeur maximale selon un critère.

Pour obtenir la valeur minimale de valeurs basée sur un ensemble de critères (c’est-à-dire pour obtenir MIN.SI), vous pouvez alors utiliser une formule matricielle combinant les fonctions MIN et SI.

Formule générale

La syntaxe est la suivante :

= { MIN ( SI ( plage1 = critère1 ; SI ( plage2 = critère2 ; plage valeurs ))) }

Dans l’exemple ci-dessous, nous souhaitons connaître le montant minimum des ventes pour l’année 2017. Pour cela, nous entrons la formule suivante, avec une fonction SI imbriquée dans la fonction MIN :

= { MIN ( SI ( ANNEE(DimVentes[Date]) = 2017; DimVentes[Montant ventes] ) ) }

Donc cette fonction se lit comme suivant : si l’année est égale à 2017 dans la plage des dates, alors calculer le minimum dans la plage de ventes. La fonction SI permet de filtrer la plage des ventes sur des dates en particulier (dont l’année est 2017) avant de rechercher le minimum avec la fonction MIN dans la plage des ventes.

Note : il s’agit d’une formule matricielle à valider en appuyant sur Ctrl+Shift+Entrée, d’où la présence des accolades “{” et “}” en début et fin de formule.

Si vous avez Excel 2016 ou un abonnement Office 365, vous pouvez préférer l’utilisation de la formule MIN.SI.ENS (ci-dessous).

Cependant, si votre travail doit être partagé avec des collaborateurs disposant d’une version antérieure (Excel 2013 par exemple), utilisez plutôt la formule matricielle qui est compatible avec ces versions antérieures.

Formule MIN.SI.ENS disponible avec Excel 2016 / Office 365

Si vous disposez d’une version récente d’Excel, et que votre fichier n’a pas besoin d’être compatible avec d’anciennes versions, vous pouvez utiliser la formule MIN.SI.ENS pour calculer le minimum d’une plage de valeurs basé sur des critères.

La syntaxe est identique à SOMME.SI.ENS :

= MIN.SI.ENS ( plage valeurs ; plage1 ; critère1 ; plage2 ; critère2 )

L’utilisation de cette formule donnera le même résultat que la formule matricielle MIN(SI()) présentée ci-dessus, et n’a pas besoin d’être validée avec Ctrl+shift+entrée.

📥TELECHARGER LE FICHIER D’EXEMPLE

Téléchargez le classeur Excel pour ce tutoriel. Seuls votre adresse e-mail et nom vous seront demandés dans la prochaine étape. Vous recevrez le lien de téléchargement par e-mail.

Excel : Calculer le minimum ou le maximum basé sur des critères

Ce fichier Excel présente un exemple pour calculer le minimum ou le maximum d'un ensemble de valeurs suivant un ou plusieurs critères.
Télécharger

Envoyer le lien de téléchargement à :

Oui, je consens à recevoir la Newsletter. Je confirme avoir lu et accepté la Politique de confidentialité.

Souscrivez à ma newsletter :

3 commentaires

  1. Joseph nathalie dit

    Bonsoir peut-on savoir si on peut par la formule nb.si.ens on peut compter dans une colonne comportant une liste déroulante le nbre enregistrement saisie par cellule en fonction de date souhaitée
    Ex: colonne liste deroulante date enlèvement
    P. Portee 31/12/2019
    P. Pdestre 31/12/2019
    P.pedestre 20/12/2020
    Embarras 15/12/2021
    Donc nbre de p.portee pour année 2019 / nbre p.pedestre pour 2020 ainsi de suite.

  2. Grantais dit

    Bonjour,
    Il y a-t-il un moyen d’écrire dans une cellule une formule matricielle directement avec VBA et excel 2013?
    J’ai essayé .FormulaArray mais elle ne m’écrit rien dans la cellule, seule .FormulaLocal écrit ma formule mais il faut par la suite faire CTRL+SHIFT+ENTER à la main.
    Comment automatiser l’action? Quel serait la formule qui écrit et formate en matricielle?
    Cordialement

    • Lionel dit

      Bonjour,
      La méthode Range.FormulaArray devrait fonctionner en VBA, par exemple :
      Range("E1:E3").FormulaArray = "=SUM(A1:C3)"
      => écrit dans la plage E1:E3 la formule matricielle {=SOMME(A1:C3)} qui est ensuite bien évaluée sans besoin de valider manuellement avec CTRL+SHIFT+ENTREE.

      Lionel

Répondre à Joseph nathalie Annuler la réponse

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