Não precisa ser tão complexo assim. Tomemos por exemplo o seguinte.
- Selecione seus cabeçalhos de coluna e nomeie-os de Entrada1. (Intervalo E1: I1 no exemplo.)
- Selecione seus cabeçalhos de linha e nomeie-os como Entrada2. (Intervalo D2: D4)
- Selecione seus dados e nomeie-os como Dados. (Intervalo E2: I4)
- Use a validação de dados para obter os menus suspensos.
- Selecione a célula B2 e clique em Dados - Validação de dados.
- Definir critérios de validação Permitir para
List
e Origem para=Input1
- Faça o que quiser para Mensagem de entrada e Alerta de erro. (Eu os desliguei)
- Repita para sua segunda entrada. (cell
B3
obtém a fonte=Input2
)
- Na sua célula de resultados, digite esta fórmula
=INDEX(Data,MATCH(B3,Input2,0),MATCH(B2,Input1,0))
A fórmula funciona da seguinte forma:
MATCH(lookup_value, lookup_array, [match_type])
MATCH
é semelhante ao VLOOKUP
, exceto que, em vez de retornar um valor de célula / célula, ele retorna a posição relativa de lookup_value
dentro do lookup_array
. Usá-lo no intervalo Input1
retorna a posição relativa da coluna ao usá-la em Input2
retorna a linha relativa. A configuração de match_type
para 0 diz ao Excel para retornar apenas a correspondência exata.
INDEX(reference, row_num, [column_num], [area_num])
INDEX
está retornando a célula em Data
encontrada na linha referenciada de Input2
e na coluna referenciada em Input1
.
Nota: No Excel 2010 (não tenho certeza sobre versões anteriores), a tabela de dados nem precisa estar na mesma planilha que as células de entrada e de resultados.