5 votes

Mappage de plages dans Excel

J'ai une colonne de données dans Excel avec des nombres [0..100]. J'ai besoin d'une nouvelle colonne qui les associe à un nouvel ensemble de valeurs, de la manière suivante :

  • > 90 : 4
  • 80-90 : 3
  • 70-79 : 2
  • 60-69 : 1
  • < 60 : 0

J'ai essayé de le faire avec VLOOKUP en particulier avec une entrée de test de 77 et l'appel de fonction VLOOKUP(77, A10:B19, 2, TRUE) où A10 est l'élément supérieur gauche de cette plage :

99   4
90   4
89   3
80   3
79   2
70   2
69   2
60   1
59   0
0    0

Cependant, j'obtiens le résultat suivant #N/A . Selon la documentation, c'est parce que

...la valeur dans le lookup_value est plus petite que la plus petite valeur dans la la première colonne du tableau_array...

Mais ce n'est manifestement pas le cas, car je passe 77 ans. Cependant, si j'utilise une entrée de test de 79 une valeur qui se trouve explicitement dans la table de consultation, j'obtiens un résultat correct.

VLOOKUP est-il la mauvaise approche ici ? Quelle est la meilleure façon de réaliser ce type de mappage ?

Je dois préciser que ma valeur d'entrée et ma table de conversion sont toutes deux saisies sous forme de nombres.

3voto

databyte Points 708

Si vous utilisez Index/Match au lieu de Vlookup, vous pouvez conserver la table de consultation triée de manière descendante comme indiqué dans votre question. La formule est la suivante

=INDEX(B1:B10,MATCH(77,A1:A10,-1))

Une correspondance avec -1 comme troisième paramètre renverra une valeur supérieure ou égale à la valeur de la consultation lorsque la table est triée de manière descendante.

1voto

deo Points 664

Après avoir longuement creusé la question, j'ai appris que la table de consultation doit être triée par ordre croissant. La documentation indique qu'elle doit être triée, mais ne précise pas l'ordre de tri. Tout autre ordre que l'ordre ascendant entraîne l'affichage du message #N/A erreur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X