Formule Excel: valeur maximale si -

Table des matières

Formule générique

(=MAX(IF(range=criteria,values)))

Sommaire

Pour obtenir une valeur maximale basée sur des critères, vous pouvez utiliser la fonction MAX avec la fonction IF dans une formule matricielle. Dans l'exemple illustré, la formule de la cellule G6 est:

(=MAX(IF(names=F6,times)))

names est la plage nommée B6: B17 et times est la plage nommée D6: D17.

Remarques: il s'agit d'une formule matricielle et doit être saisie avec Ctrl + Maj + Entrée. Les versions ultérieures d'Excel ont une fonction MAXIFS, voir la remarque ci-dessous.

Explication

La fonction IF est évaluée en premier. Le test logique est une expression qui teste tous les noms:

IF(names=F6 // logical test

Le résultat est un tableau de valeurs TRUE / FALSE comme ceci:

(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE)

Les valeurs TRUE correspondent aux lignes dont le nom est "Hannah". Pour tous les autres noms, la valeur est FALSE. La «valeur si vrai» pour IF est la plage de temps nommée , qui contient l'ensemble complet des heures. Aucune "valeur si faux" n'est fournie:

IF(names=F6,times)

Le résultat final de IF est un tableau comme celui-ci:

(0.000868055555555556;FALSE;FALSE;0.000902777777777778;FALSE;FALSE;0.000914351851851852;FALSE;FALSE;0.000833333333333333;FALSE;FALSE)

Remarque: les temps Excel sont des valeurs fractionnaires, ce qui explique les longues décimales.

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 fournit ce tableau directement à la fonction MAX, qui ignore automatiquement les valeurs FALSE et renvoie le temps maximum dans le tableau.

Avec MAXIFS

La fonction MAXIFS, disponible dans Excel O365 et Excel 2019, est conçue pour renvoyer une valeur maximale basée sur un ou plusieurs critères sans avoir besoin d'une formule matricielle. Avec MAXIFS, la formule dans G6 est:

=MAXIFS(times,names,F6)

Articles intéressants...