Como posso fazer uma pesquisa bidimensional em que os cabeçalhos de coluna e linha são intervalos?

0

Eu tenho uma planilha que tem uma tabela que é semelhante em estrutura para isso:

      | 1-2 | 3-4 | 5-6 | 7+
-------------------------------
18-20 |  7  |  2  |  9  |  4  |
21-25 |  1  |  0  |  6  |  3  |
26-30 |  1  |  4  |  6  |  9  |
31+   |  3  |  8  |  5  |  0  |

Então, por exemplo, as entradas que recebi do usuário foram 2, 19, a pesquisa deve retornar 7. Ou se as entradas foram 9, 29, a pesquisa deve retornar 9.

Eu sei que você pode fazer pesquisas bidimensionais quando você só tem valores únicos nos cabeçalhos de linha e coluna, combinando VLOOKUP e MATCH. Mas como faço a pesquisa quando os cabeçalhos são um intervalo de valores?

Preciso apenas escrever uma função VBA personalizada ou o Excel tem alguma maneira interna de fazer isso?

Lews Therin
fonte

Respostas:

1

INDEX() pode fazer uma pesquisa bidimensional. A sintaxe é INDEX(array,row_num,[col_num],[area_num]). É preciso um array 2D e retorna a interseção de row_num e column_num.

Seu problema é um pouco complicado por causa dos intervalos nos cabeçalhos, mas alguns passos rápidos com TRUNC() e IF() faz o trabalho. Esta fórmula preenchida do D8 na imagem abaixo, dá os resultados mostrados:

=INDEX(B$2:E$5,IF(C8>31,4,TRUNC((C8-11)/5)),IF(B8>7,4,TRUNC((B8+1)/2)))

enter image description here

Se você quiser ver como o TRUNC() parte funciona, colocar =TRUNC((ROW()-11)/5) na fileira 18 ou TRUNC((ROW()+1)/2) na linha 1 e preencha.

Espero que isso ajude e boa sorte.

Bandersnatch
fonte
0

Dado que você está procurando em intervalos que são mutuamente exclusivos e completos (pelo menos para valores & gt; = 18), seu intervalo pode ser definido pelo primeiro valor em cada célula. Por exemplo, a tabela que você fornece pode ser descrita de maneira equivalente por:

enter image description here

Você pode então encontrar o seu valor combinando vlookup e match. Por exemplo, se seus valores de tabela e pesquisa foram organizados como a seguinte imagem:

enter image description here

Seu valor desejado estaria na célula destacada que conteria o seguinte: = VLOOKUP (B $ 8, $ A $ 1: $ E $ 5, MATCH ($ A8, $ A $ 1: $ E $ 1,1), TRUE)

AlRacoon
fonte
1
Presumivelmente, o OP tem os intervalos em seus cabeçalhos por um motivo e gostaria de mantê-los lá. Mas bom trabalho usando MATCH tipo 1 e VLOOKUP () com uma correspondência aproximada para lidar com casos em que o valor de pesquisa está fora do intervalo.
Bandersnatch
@Bandersnatch Obrigado. Eu gostei da sua abordagem também. Se eu tivesse visto antes de postar minha resposta, provavelmente não teria postado. A dificuldade é que o OP teria que fazer o cálculo e as instruções se aninhadas se houvesse mais intervalos que não fossem de tamanho equivalente. De qualquer forma, acho que uma ou ambas as abordagens poderiam ser usadas pelo OP, dependendo das circunstâncias.
AlRacoon