web-dev-qa-db-fra.com

Utilisez INDEX MATCH pour trouver une valeur supérieure/égale à

J'ai effectué une recherche en ligne et dans l'aide d'Excel, mais je ne trouve pas si cela est possible.

Étant donné une liste de nombres, de valeurs et un terme de recherche, je dois trouver la valeur avec laquelle la valeur est supérieure ou égale au terme de recherche. Voir l'exemple:

Excel Index Match Example

Excel renvoie Red mais il devrait renvoyer Orange car 15 est supérieur à 10.
Voici d'autres exemples de résultats souhaités:

  • 5 = rouge (ou N/A) 
  • 25 = jaune 
  • 63 = violet 
  • 15434 = Violet (ou N/A)

Je me rends compte que si je trie la liste par ordre décroissant et utilise -1 pour l'argument MATCH[match_type], alors tout va bien, mais , la liste compte plus de 1 000 lignes et est beaucoup plus facile à lire par ordre croissant.

5
EvilDr

Vos résultats souhaités apparaissent un peu incohérents. Pourquoi le résultat souhaité pour 15 Orange est-il celui de 63 Indigo?

Est-ce que vous essayez en fait de faire une correspondance en fonction de la valeur correspondante qui est absolument / la plus proche de la valeur de recherche, qu'elle soit inférieure ou supérieure à cette valeur?

Si c'est le cas:

= INDEX (B4: B10, MATCH (VRAI, INDEX (ABS (A4: A10-B1) = MIN (INDEX (ABS: A4: A10-B1) ,)) ,)), 0))

bien que cela ne différencie toujours pas, par exemple, Orange et jaune pour une valeur de recherche de 25 (bien que je ne sois pas sûr de savoir comment vous envisagez de "plus proche" de 30 que de toute façon).

Cordialement

7
XOR LX

Une autre méthode consiste à placer les numéros et les couleurs dans un tableau, à classer les numéros par ordre croissant et à utiliser la formule ci-dessous:

=INDEX(B4:B10,MATCH(B1,A4:A10,-1))
0
Stewart