web-dev-qa-db-fra.com

Comparer deux colonnes et renvoyer une cellule adjacente spécifique dans Excel

J'utilise une combinaison de fonctions if, vlookup, match, iserror, et malheureusement je n'ai pas pu trouver la bonne formule.

La comparaison de deux colonnes pour les correspondances est assez simple. la partie difficile a été de retourner une cellule spécifique une fois qu'une correspondance est trouvée.

Donc, ce à quoi je fais face est quelque chose comme ceci:

Header     Column A   Column B   Column C  Column D
Row 1      111        AAA        112
Row 2      222        BBB        111
Row 3      333        CCC        221
Row 4      444        DDD        333

J'essaie de faire correspondre les valeurs des colonnes dans Column A, avec Column C. Donc, s'il y a correspondance, je veux la valeur correspondante dans Column B à remplir dans Column D. Pas une bonne explication, mais permettez-moi de vous montrer visuellement ce que je recherche

Header     Column A   Column B   Column C  Column D
Row 2      111        AAA        112
Row 3      222        BBB        111       AAA
Row 4      333        CCC        221
Row 5      444        DDD        333       CCC

Depuis les cellules A1 correspond à la cellule C3, Je veux que D renvoie B2

Pareil avec Row 5. Puisque A4 et C5 correspond, je veux la valeur de B5

Faites-moi savoir si cela a du sens ou si vous avez besoin de précisions supplémentaires.

6
aragorn marsden

Très similaire à cette question , et je suggérerais la même formule dans la colonne D, bien que quelques modifications des plages:

=IFERROR(VLOOKUP(C1, A:B, 2, 0), "")

Si vous souhaitez utiliser match, vous devez également utiliser INDEX, comme ceci:

=IFERROR(INDEX(B:B, MATCH(C1, A:A, 0)), "")

mais c'est très long pour moi et vous devez savoir comment utiliser correctement deux fonctions (ou trois, si vous ne savez pas comment IFERROR fonctionne)!

Remarque: =IFERROR() peut être un substitut de =IF() et =ISERROR() dans certains cas :)

8
Jerry

Voici ce qui doit aller dans D1: =VLOOKUP(C1, $A$1:$B$4, 2, FALSE)

Vous devriez alors être en mesure de le copier dans le reste de la colonne D.

1
tonyj444

Je vous conseillerais de permutez les colonnes B et C pour la raison que je vais expliquer. Puis en D2 tapez: = VLOOKUP (A2, B2: C4, 2, FALSE)

Enfin, copiez la formule des cellules restantes.

Explication: RECHERCHEV recherchera d'abord la valeur de A2 dans la plage B2 à C4 (deuxième argument). REMARQUE: RECHERCHEV recherche toujours la première colonne de cette plage. C'est la raison pour laquelle vous devez permuter les deux colonnes avant faire quelque chose.

Une fois la correspondance exacte trouvée, elle renverra la valeur dans la cellule adjacente (troisième argument).

Cela signifie que, si vous mettez 1 comme troisième argument, la fonction renverra la valeur dans la première colonne de la plage (qui sera la même valeur que vous cherchiez). Si vous mettez 2, il renverra la valeur de la deuxième colonne de la plage (la valeur dans la cellule adjacente - CÔTÉ DROIT de la valeur trouvée).

FALSE indique que vous trouvez la correspondance exacte. Si vous mettez VRAI, vous chercherez la correspondance approximative.

0
DK250

Dans la cellule D2 et copiée vers le bas:

=IF(COUNTIF($A$2:$A$5,C2)=0,"",VLOOKUP(C2,$A$2:$B$5,2,FALSE))
0
tigeravatar