
Formule générique
(=MIN(IF(range=criteria,values)))
Sommaire
Pour obtenir une valeur minimale basée sur des critères, vous pouvez utiliser la fonction MIN avec la fonction IF. Dans l'exemple illustré, la formule en G6 est:
(=MIN(IF(names=F6,times)))
Où «noms» est la plage nommée B6: B17 et times est la plage nommée D6: D17.
Il s'agit d'une formule matricielle et doit être saisie avec Ctrl + Maj + Entrée.
Explication
La fonction IF est évaluée en premier avec le test logique suivant:
names=F6
Cela génère un tableau de valeurs TRUE / FALSE, où TRUE correspond aux lignes où le nom correspond à la valeur de F6:
(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE)
La "valeur si vrai" pour IF est la plage nommée "heures", qui renvoie l'ensemble complet des heures. Le résultat est que le tableau du test logique "filtre" effectivement les valeurs de temps. Lorsqu'un résultat est TRUE, l'heure est passée dans le tableau retourné par IF. Lorsqu'un résultat est FALSE, la valeur de temps est remplacée par le booléen FALSE:
(0.000868055555555556;FALSE;FALSE;0.000902777777777778;FALSE;FALSE;0.000914351851851852;FALSE;FALSE;0.000833333333333333;FALSE;FALSE)
Remarque: les heures Excel sont des valeurs fractionnaires, ce qui explique les valeurs décimales longues.
La fonction IF agit comme un filtre. Seules les valeurs de temps associées à TRUE passent par le filtre, les autres valeurs sont remplacées par FALSE.
La fonction IF délivre ce tableau directement à la fonction MIN, renvoie la valeur minimale du tableau. Les valeurs FALSE sont automatiquement ignorées.
Cellules vides
Les cellules vides entraîneront la transmission de valeurs nulles dans MIN, ce qui peut entraîner des résultats inattendus. Pour "filtrer" les cellules vides, vous pouvez ajouter un autre IF imbriqué comme ceci:
=MIN(IF(names=F6,IF(times"",times)))
Avec MINIFS
La fonction MINIFS, introduite dans Excel 2016 via Office 365, est conçue pour calculer les minimums en fonction d'un ou plusieurs critères sans avoir besoin d'une formule matricielle. Avec MINIFS, la formule dans G6 est:
=MINIFS(times,names,F6)