
Fórmula genérica
=LOOKUP(B5,minimums,results)
Resumo
Para pesquisar valores entre dois valores e retornar um resultado correspondente, você pode usar a função LOOKUP e uma tabela classificada. No exemplo mostrado, a fórmula em C5 é:
=LOOKUP(B5,mins,results)
onde "min" é o intervalo nomeado E5: E9 e "resultados" é o intervalo nomeado G5: G9.
Explicação
A função LOOKUP faz uma pesquisa de correspondência aproximada em um intervalo e retorna o valor correspondente em outro.
Embora a tabela neste exemplo inclua os valores máximo e mínimo, só precisamos usar os valores mínimos. Isso ocorre porque quando LOOKUP não consegue encontrar uma correspondência, ele irá corresponder ao próximo menor valor. LOOKUP é configurado assim:
- Os valores de pesquisa vêm da coluna B.
- O vetor de pesquisa é inserido como o intervalo nomeado "minutos" (E5: E9)
- O vetor de resultado é inserido como o intervalo denominado "resultados" (G5: G9)
LOOKUP se comporta assim:
- Se LOOKUP encontrar uma correspondência exata no vetor de pesquisa, o valor correspondente no vetor de resultado será retornado.
- Se nenhuma correspondência exata for encontrada, LOOKUP percorrerá o vetor de pesquisa até que um valor maior seja encontrado e, em seguida, "voltará" para a linha anterior e retornará um resultado.
- Se o valor de pesquisa for maior do que o maior valor no vetor de pesquisa, LOOKUP retornará um resultado associado ao último valor no vetor de pesquisa.
Observação: os valores no vetor de pesquisa devem ser classificados em ordem crescente.
Literalmente entre
Embora o exemplo acima funcione bem e localize efetivamente um valor "entre" um mínimo e um máximo na tabela de pesquisa, ele realmente usa apenas os valores mínimos. Com um intervalo nomeado "máximas" para valores máximos, você pode escrever uma versão literal da fórmula como esta:
=LOOKUP(2,1/((B5>=mins)*(B5<=maxs)),results)
Esta versão retorna o valor associado no vetor de resultado quando o valor em B5 está literalmente entre o valor mínimo e máximo em uma determinada linha. No caso de duplicatas, esta fórmula retornará a última correspondência. A explicação da lógica está aqui.