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
Envoyer le lien de téléchargement à :
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.
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
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