Mapeamento de intervalo no Excel

Mapeamento de intervalo no Excel

Tenho uma coluna de dados no Excel com números [0..100]. Preciso de uma nova coluna, que os mapeie para um novo conjunto de valores tal que:

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

Eu tentei fazer isso comPROCV, especificamente com uma entrada de teste 77e a chamada de função VLOOKUP(77, A10:B19, 2, TRUE), onde A10 é o elemento superior esquerdo neste intervalo:

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

No entanto, estou obtendo um resultado de #N/A. De acordo com a documentação, isso ocorre porque

...o valor em lookup_value é menor que o menor valor na primeira coluna de table_array...

No entanto, esse claramente não é o caso, pois estou passando de 77. No entanto, se eu usar uma entrada de teste de 79, um valor que está explicitamente na tabela de pesquisa, obtenho um resultado correto.

VLOOKUP é a abordagem errada aqui? Qual é a melhor maneira de fazer esse tipo de mapeamento?

Devo mencionar que tanto meu valor de entrada quanto minha tabela de pesquisa são digitados como Número.

Responder1

Se você usar Index/Match em vez de Vlookup, poderá manter a tabela de pesquisa classificada em ordem decrescente, conforme postado em sua pergunta. A fórmula é

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

Combine com -1 como terceiro parâmetro retornará um valor maior ou igual ao valor de pesquisa quando a tabela for classificada em ordem decrescente.

Responder2

Depois de me aprofundar nisso por muito tempo, aprendi que a tabela de pesquisa deve ser classificada em ordem crescente. A documentação observa que deve ser classificado, mas não especificou a ordem de classificação. Qualquer coisa além da ordem crescente resulta em #N/Aerro.

informação relacionada