Vérifiez si la valeur de la cellule existe dans la colonne, puis obtenez la valeur de la cellule NEXT.

Après avoir vérifié si une valeur de cellule existe dans une colonne, je dois obtenir la valeur de la cellule à côté de la cellule correspondante . Par exemple, je vérifie si la valeur dans la cell A1 existe dans la column B , et en supposant qu’elle correspond à B5 , alors je veux la valeur dans la cell C5 .

Pour résoudre la première partie du problème, je l’ai fait …

 =IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match") 

… et ça a marché. Ensuite, grâce à une réponse antérieure sur SO , j’ai également pu obtenir le numéro de ligne de la cellule correspondante:

 =IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0)) 

Donc, naturellement, pour obtenir la valeur de la cellule suivante, j’ai essayé …

 =IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0)) 

… et ça ne marche pas.

Qu’est-ce que je rate? Comment append le numéro de colonne au numéro de ligne renvoyé pour obtenir le résultat souhaité?

Utilisez une fonction différente, comme VLOOKUP:

 =IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE)) 

Après la réponse de t.thielemans , je travaillais juste

 =VLOOKUP(A1, B:C, 2, FALSE) 

fonctionne bien et fait ce que je voulais, sauf qu’il renvoie #N/A pour les non-correspondances; il convient donc au cas où l’on sait que la valeur existe bien dans la colonne de recherche.

Edit (basé sur le commentaire de t.thielemans):

Pour éviter #N/A pour les non-matches, faites:

 =IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match") 

Que dis-tu de ça?

 =IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", INDIRECT(ADDRESS(MATCH(A1,B:B, 0), 3))) 

Le «3» à la fin signifie pour la colonne C.