91 votes

Vérifier si la valeur de la cellule existe dans la colonne, et ensuite obtenir la valeur de la cellule suivante.

Après avoir vérifié si une valeur de cellule existe dans une colonne, je dois obtenir la valeur de la cellule voisine de la cellule correspondante . Par exemple, je vérifie si la valeur dans cell A1 existe dans column B et en supposant qu'il correspond B5 alors je veux 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 ça a marché. Puis, grâce à un réponse précédente sur le 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 ajouter le numéro de colonne au numéro de ligne renvoyé pour obtenir le résultat souhaité ?

100voto

t.thielemans Points 2455

Utilisez une autre fonction, comme VLOOKUP :

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

39voto

SNag Points 1342

En réponse de t.thielemans J'ai travaillé juste

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

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

Modifier (d'après le commentaire de t.thielemans) :

Pour éviter #N/A pour les non-concordances, faire :

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

7voto

Vincent Tan Points 1229

Que pensez-vous 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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X