Formule Excel: nième plus petite valeur avec des critères -

Table des matières

Formule générique

(=SMALL(IF(criteria,values),n))

Sommaire

Pour obtenir la deuxième valeur la plus petite, la troisième valeur la plus petite, la quatrième valeur la plus petite, etc., où chaque valeur correspond aux critères fournis, vous pouvez utiliser une formule matricielle qui utilise les fonctions SMALL et IF.

Dans l'exemple illustré, la formule dans G7 est:

(=SMALL(IF(Sex="F",Time),F7))

Où "Sex" est une plage nommée pour C3: C15 et "Time" est la plage nommée D3: D15.

Remarque: il s'agit d'une formule matricielle et doit être saisie à l'aide de Ctrl + Maj + Entrée.

Explication

La fonction SMALL est entièrement automatique - il vous suffit de fournir une plage et un entier pour "nth" pour spécifier la valeur de classement souhaitée.

Le problème dans ce cas est que nous ne voulons pas que SMALL opère sur toutes les valeurs de la plage, mais uniquement sur des valeurs masculines ou féminines (M ou F). Pour appliquer ce critère, nous utilisons la fonction IF, qui fournit un test logique pour «M» ou «F». Étant donné que nous appliquons le test à un tableau de valeurs, le résultat sera également un tableau. Dans l'exemple illustré , le tableau résultant ressemble à ceci:

(0,00729166666666667; FALSE; 0,00689814814814815; FALSE; 0,00835648148148148; FALSE; FALSE; FALSE; FALSE; 0,00693287037037037; FALSE; FALSE; 0,00672453703703704)

Où FALSE représente les temps masculins et les nombres représentent les temps féminins. (Des temps comme celui-ci sont des valeurs fractionnaires, c'est pourquoi nous avons tant de décimales pour certains fois).

La fonction SMALL ignorera automatiquement les valeurs TRUE et FALSE, de sorte que le résultat sera la nième plus petite valeur de l'ensemble des nombres réels du tableau.

Erreur sans nième

Vous obtiendrez une erreur s'il n'y a pas de nième plus petite valeur basée sur les critères fournis. Vous pouvez intercepter cette erreur avec IFERROR et la remplacer par la valeur qui a du sens comme ceci:

(=IFERROR(SMALL(IF(Sex="F",Time),F8),"-"))

Critères multiples

Pour gérer plusieurs critères, vous pouvez étendre la formule avec une logique booléenne sous une forme comme celle-ci:

=SMALL(IF((criteria1)*(criteria2),values),n)

Où critère1 et critère2 et représentent une expression pour tester des valeurs dans une plage de critères, comme indiqué dans l'exemple d'origine ci-dessus.

Articles intéressants...