Formule Excel: première correspondance entre deux plages -

Table des matières

Formule générique

=INDEX(range2,MATCH(TRUE,COUNTIF(range1,range2)>0,0))

Sommaire

Pour récupérer la première correspondance dans deux plages de valeurs, vous pouvez utiliser une formule basée sur les fonctions INDEX, MATCH et COUNTIF. Dans l'exemple illustré, la formule en G5 est:

=INDEX(range2,MATCH(TRUE,COUNTIF(range1,range2)>0,0))

où "range1" est la plage nommée B5: B8, "range2" est la plage nommée D5: D7.

Explication

Dans cet exemple, la plage nommée «plage1» fait référence aux cellules B5: B8 et la plage nommée «plage2» fait référence à D5: D7. Nous utilisons des plages nommées uniquement pour des raisons de commodité et de lisibilité; la formule fonctionne également très bien avec les références de cellules régulières.

Le noyau de cette formule est INDEX et MATCH. La fonction INDEX récupère une valeur de range2 qui représente la première valeur de range2 qui se trouve dans range1. La fonction INDEX nécessite un index (numéro de ligne) et nous générons cette valeur à l'aide de la fonction MATCH, qui est définie pour correspondre à la valeur TRUE dans cette partie de la formule:

MATCH(TRUE,COUNTIF(range1,range2)>0,0)

Ici, la valeur de correspondance est TRUE et le tableau de recherche est créé avec COUNTIF ici:

COUNTIF(range1,range2)>0

COUNTIF renvoie un décompte des valeurs range2 qui apparaissent dans range1. Étant donné que range2 contient plusieurs valeurs, COUNTIF renverra plusieurs résultats qui ressemblent à ceci:

(0;0;1)

Nous utilisons "> 0" pour forcer tous les résultats à TRUE ou FALSE:

(FALSE;FALSE;TRUE)

Alors MATCH fait son truc et retourne la position du premier TRUE (s'il y en a) qui apparaît, dans ce cas, le nombre 3.

Enfin, INDEX renvoie la valeur à cette position, "Rouge".

Articles intéressants...