Formule Excel: Match first ne commence pas par -

Table des matières

Formule générique

(=MATCH(TRUE,IF(LEFT(range,1)"N",TRUE),0))

Sommaire

Pour faire correspondre la première valeur qui ne commence pas par une chaîne spécifique, vous pouvez utiliser un tableau basé sur les fonctions MATCH et LEFT. Dans l'exemple illustré, la formule en F5 est:

(=MATCH(TRUE,IF(LEFT(code,1)"N",TRUE),0))

où "code" est la plage nommée B5: B12.

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

Explication

La clé de cette formule est le tableau ou les valeurs TRUE et FALSE construites avec cette expression:

LEFT(code,1)"N"

Ici, chaque valeur de la plage nommée «code» est évaluée avec le test logique «la première lettre n'est pas N». Le résultat est un tableau ou des valeurs TRUE et FALSE comme ceci:

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

Ce tableau est introduit dans la fonction MATCH en tant que tableau de recherche. La valeur de recherche est TRUE et le type de correspondance est défini sur zéro pour forcer une correspondance exacte. La fonction MATCH renvoie la position de la première valeur qui ne commence pas par la lettre «N» (Z09876), qui vaut 5.

INDEX et MATCH

Pour récupérer une valeur associée à la position retournée par MATCH, vous pouvez ajouter la fonction INDEX. Dans l'exemple illustré, la formule en F6 est:

(=INDEX(value,MATCH(TRUE,LEFT(code,1)"N",0)))

Notez que nous utilisons la même formule MATCH ci-dessus pour fournir un numéro de ligne à INDEX, avec le tableau défini sur la plage nommée «valeur». Comme précédemment, MATCH renvoie 5. INDEX renvoie ensuite la valeur à cette position, -23.

Comme précédemment, il s'agit d'une formule matricielle et doit être saisie avec Ctrl + Maj + Entrée.

Articles intéressants...