ÍNDICE e CORRESP em múltiplas colunas
Para procurar um valor correspondendo-o em múltiplas colunas, uma fórmula de matriz baseada nas funções ÍNDICE e CORRESP, que incorpora as funções MMULT, TRANSPOR e COL, fará o trabalho por si.

Como procurar um valor correspondendo-o em múltiplas colunas?
Para preencher a turma correspondente de cada aluno, conforme mostrado na tabela acima — em que a informação está distribuída por múltiplas colunas —, comece por utilizar o truque das funções MMULT, TRANSPOR e COL para gerar uma matriz. Depois, a função CORRESP fornecer-lhe-á a posição do valor que procura, que será passada à função ÍNDICE para recuperar o valor pretendido na matriz.
Sintaxe genérica
=INDEX(return_range,(MATCH(1,MMULT(--(lookup_array=lookup_value),TRANSPOSE(COLUMN(lookup_array)^0)),0)))
√ Nota: Trata-se de uma fórmula de matriz que requer que prima Ctrl+Shift+Enter.
- return_range: O intervalo de onde pretende que a fórmula devolva a informação da turma. Refere-se aqui ao intervalo das turmas.
- lookup_value: O valor que a fórmula utiliza para encontrar a informação correspondente da turma. Neste caso, refere-se ao nome indicado.
- lookup_array: O intervalo de células onde o lookup_value está listado; ou seja, o intervalo com os valores a comparar com o lookup_value. Aqui refere-se ao intervalo dos nomes.
- match_type 0: Obriga a função CORRESP a encontrar o primeiro valor exatamente igual ao lookup_value.
Para encontrar a turma do Jimmy, copie ou introduza a fórmula abaixo na célula H5 e prima Ctrl+Shift+Enterpara obter o resultado:
=ÍNDICE()$B$5:$B$7,(CORRESP(1,MMULT(--())))$C$5:$E$7=G5),TRANSPOR(COL()$C$5:$E$7)^0)),0)))
√ Nota: Os sinais de dólar ($) acima indicam referências absolutas, o que significa que os intervalos de nome e classe na fórmula não mudarão quando mover ou copiar a fórmula para outras células. Note que não deve adicionar sinais de dólar à referência de célula que representa o valor de procura, uma vez que pretende que esta seja relativa ao copiá-la para outras células. Após introduzir a fórmula, arraste a alça de preenchimento para baixo para aplicar a fórmula às células seguintes.

Explicação da fórmula
=INDEX($B$5:$B$7,(MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLUMN($C$5:$E$7)^0)),0)))
- --($C$5:$E$7=G5): Este segmento compara cada valor no intervalo $C$5:$E$7 com o valor da célula G5, gerando uma matriz de VERDADEIRO e FALSO como esta:
{VERDADEIRO,FALSO,FALSO;FALSO,FALSO,FALSO;FALSO,FALSO,FALSO}.
O duplo sinal negativo converte, em seguida, os valores VERDADEIRO e FALSO em 1 e 0, resultando numa matriz como esta:
{1,0,0;0,0,0;0,0,0}. - COLUMN($C$5:$E$7): A função COL retorna os números das colunas do intervalo $C$5:$E$7 numa matriz como esta: {3,4,5}.
- TRANSPOR()COLUMN($C$5:$E$7)^0)=TRANSPOR(){3,4,5}^0):Ao elevar à potência 0, todos os números na matriz {3,4,5} são convertidos em 1: {1,1,1}. A função TRANSPOR converte, de seguida, a matriz de coluna numa matriz de linha como esta:{1;1;1}.
- MMULT()--($C$5:$E$7=G5),TRANSPOR()COLUMN($C$5:$E$7)^0))=MMULT(){1,0,0;0,0,0;0,0,0},{1;1;1}):A função MMULT devolve o produto matricial das duas matrizes, resultando em:{1;0;0}.
- CORRESP(1,)MMULT()--($C$5:$E$7=G5),TRANSPOR()COLUMN($C$5:$E$7)^0)),0)=CORRESP(1,){1;0;0},0):O argumento tipo_de_correspondência 0 obriga a função CORRESP a devolver a posição da primeira ocorrência de 1 na matriz {1;0;0}, que é 1.
- ÍNDICE()$B$5:$B$7,(CORRESP(1,))MMULT()--($C$5:$E$7=G5),TRANSPOR()COLUMN($C$5:$E$7)^0)),0))) = ÍNDICE($B$5:$B$7 A função ÍNDICE devolve o 1.º valor no intervalo das turmas $B$5:$B$7, que é A.
Para procurar facilmente um valor correspondendo em várias colunas, também pode utilizar o nosso suplemento profissional para Excel Kutools for Excel.Veja aqui as instruções para concluir esta tarefa.
Funções relacionadas
A função ÍNDICE do Excel devolve o valor exibido com base numa posição específica dentro de um intervalo ou matriz.
A função CORRESP do Excel procura um valor específico num intervalo de células e devolve a sua posição relativa.
A função MMULT do Excel devolve o produto matricial de duas matrizes, resultando numa matriz com o mesmo número de linhas que a matriz1 e o mesmo número de colunas que a matriz2.
A função TRANSPOR do Excel altera a orientação de um intervalo ou matriz — por exemplo, transformando uma tabela disposta horizontalmente em linhas numa disposição vertical em colunas, ou vice-versa.
A função COL devolve o número da coluna em que a fórmula está inserida ou, se indicada uma referência, devolve o número da respetiva coluna. Por exemplo, a fórmula =COL(BD) devolve 56.
Fórmulas relacionadas
Pesquisa com múltiplos critérios com ÍNDICE e CORRESP
Gerir uma grande base de dados numa folha de cálculo do Excel, com múltiplas colunas e legendas de linha, pode tornar-se desafiante quando precisa de localizar informações que cumpram vários critérios. Nesses casos, a solução ideal é utilizar uma fórmula de matriz combinando as funções ÍNDICE e CORRESP.
Pesquisa bidirecional com ÍNDICE e CORRESP
Para encontrar algo simultaneamente em linhas e colunas no Excel — ou seja, localizar um valor exatamente na interseção de uma linha e uma coluna específicas — basta combinar as funções ÍNDICE e CORRESP.
Localizar o valor mais próximo com múltiplos critérios
Em alguns casos, poderá precisar de encontrar o valor mais próximo ou aproximado com base em mais do que um critério. Ao combinar as funções ÍNDICE, CORRESP e SE, obtém esse resultado rapidamente no Excel.
As Melhores Ferramentas de Produtividade para o Office
Kutools for Excel – Ajuda-o a destacar-se da multidão
Kutools for Excel Oferece mais de 300 funcionalidades,garantindo que tudo o que precisa está a apenas um clique…
Office Tab – Ative a leitura e edição com separadores no Microsoft Office (incluindo o Excel)
- Um segundo para alternar entre dezenas de documentos abertos!
- Reduza centenas de cliques diários e diga adeus à tendinite do rato.
- Aumente a sua produtividade em 50 % ao visualizar e editar vários documentos simultaneamente.
- Traz uma navegação eficiente com separadores ao Office (incluindo o Excel), tal como no Chrome, Edge e Firefox.