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 cell A1
existe dans column B
, et en supposant qu'elle corresponde à B5
, je souhaite alors la valeur dans cell C5
.
Pour résoudre la première moitié du problème, j'ai fait ceci ...
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")
... et cela a fonctionné. Ensuite, grâce à un réponse précédente 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))
Alors naturellement, pour avoir 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 ajouter le numéro de colonne au numéro de ligne renvoyé pour obtenir le résultat souhaité?
Après réponse de t.thielemans , j'ai travaillé que
=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 est donc approprié pour le cas où il est connu que la valeur existe définitivement dans la colonne de recherche.
Edit (basé sur le commentaire de t.thielemans):
Pour éviter #N/A
en cas de non concordance, procédez comme suit:
=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")
Utilisez une fonction différente, telle que VLOOKUP:
=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))
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.