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

89

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 A1existe dans column B, et en supposant qu'elle 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 cela a fonctionné. 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))

Alors 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é?

Accroc
la source

Réponses:

99

Utilisez une fonction différente, telle que RECHERCHEV:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))
PersonnaliséX
la source
1
Merci! Cela fonctionne aussi! Et je pense qu'il serait préférable d'utiliser VLOOKUP(A1, B:C, 2, FALSE)au lieu d'utiliser une plage fixe (afin de s'adapter à un tableau de recherche croissant)?
SNag
1
Ouais, je viens d'utiliser cette plage fixe comme test. Je l'ai modifié dans ma réponse.
CustomX
Vous n'avez pas besoin IFERRORici. Cela fonctionne bien sans lui, car la RECHERCHEV n'est exécutée que s'il y a une correspondance.
SNag
Oups! Il me semble avoir testé dans la mauvaise colonne: P En effet sans IFERROR ça marche aussi parfaitement: P
CustomX
3
C'est plus vieux que vieux, mais je voulais juste dire que je l'utilise depuis des années et cela me dérange vraiment que vous n'ayez jamais eu la meilleure réponse. J'adore le fait que cela rend le tableau évolutif pour comparer plusieurs colonnes.
DuffDuff
36

Après la réponse de t.thielemans , j'ai travaillé

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

fonctionne bien et fait ce que je voulais, sauf que ça revient #N/A pour les non-correspondances; il convient donc au cas où l'on sait que la valeur existe définitivement dans la colonne de recherche.

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

Pour éviter les #N/Anon-correspondances, faites:

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")
Accroc
la source
3
Utilisez plutôt ceci IFERROR(VLOOKUP(A1, B:C, 2, FALSE),0). J'ai également ajouté ceci à ma réponse. 0 étant la valeur que vous voulez :) (utilisez ceci dans le code mènera à Aucune correspondance si aucune correspondance n'est trouvée;)
CustomX