Procurar valores com INDEX/MATCH no Excel
ÍNDICE e CORRESP são funções incrivelmente polivalentes. Juntas permitem fazer lookups mais rápidos e com menos peso nos ficheiros.
Resumo
INDEX (Índice) e MATCH (Corresp) são funções incrivelmente polivalentes. Juntas permitem fazer lookups mais rápidos e com menos peso nos teus ficheiros. Se não usas, e ainda estás agarrado ao VLOOKUP (Procv), presta atenção a este artigo e no fim decide por ti se estás preparado para dar este passo em frente nos teus conhecimentos de Excel. Vamos começar por explicar cada uma das funções e depois partir para a sua aplicação em conjunto.A Função ÍNDICE (Index)
O ÍNDICE (Index) permite-nos numa determinada tabela identificar um valor dando as coordenadas de Linha e Coluna.=(ÍNDICE(B3:B15;4))
No exemplo acima, dizemos ao Excel que na Coluna B, dentro das células B3:B15, procure o valor da 4ª linha. O valor devolvido é ID_4=(ÍNDICE(B3:F15;4;2))
E se quisermos saber o nome do/da Cliente que está na quarta linha?Nesse caso, podemos dizer ao Excel que queremos que procure em toda a tabela B3:F15, a linha número 4 (que já tinhamos feito no primeiro exemplo) e a coluna 2. E a função devolve-nos então o nome Marlene, que é a cliente ID_4.
A Função CORRESP (Match)
A função CORRESP (Match) tem um ojectivo: encontrar a posição de um item numa tabela de dados.=CORRESP("josé";B3:B15;0)
Podemos usar CORRESP para encontrar a palavra "José" na tabela de dados B3:B15. A função devolve 8, já que este é o número da linha em que o nome que procuramos se encontra.A função CORRESP não é Case-Sensitive. Podemos procurar por "José" ou "JOSÉ" que o Excel irá sempre encontrar o valor. E o Match funciona tanto na vertical como na horizontal.
=CORRESP("MARIA";H3:T3;0)
Procuramos por Maria e o valor devolvido é 5, que corresponde à 5ª coluna da tabela horizontal, onde efectivamente está o valor Maria. O último argumento da função é muito importante que seja correctamente definido. Estamos a usar 0, que corresponde a procurar o valor exacto.
Valor | Resultado | Detalhe |
---|---|---|
1 | Aproximado | CORRESP encontra o maior valor menor ou igual ao valor procurado. Tabela tem que estar ordenada por ordem crescente |
0 | Exato | CORRESP encontra o primeiro valor igual ao valor procurado. Tabela não tem que estar ordenada |
-1 | Aproximado | CORRESP encontra o menor valor maior ou igual ao valor procurado. Tabela tem que estar ordenada por ordem decrescente |
Aproximado | Se omitirmos o valor, o Excel assume 1 como default |
A Função ÍNDICE (Index) com a Função CORRESP (Match)
Agora que já cobrimos o básico das Funções ÍNDICE e CORRESP, podemos olhar para o que conseguimos fazer quando as juntamos.Imaginemos que queremos encontrar as vendas de Fevereiro do Vendedor João.
Já sabemos que usando o ÍNDICE podemos fazê-lo da seguinte forma:
=(ÍNDICE(B2:I14;9;6)) // Linha 9, Coluna 6 (G), devolve o valor 21
Mas o que queremos fazer é tornar esta pesquisa dinâmica.1. Juntamos então finalmente o ÍNDICE com o CORRESP.
2. Definimos a tabela de procura com =ÍNDICE(B2:I14;
3. Procuramos por "João" na coluna B12:B14 com CORRESP("João";B2:B14;0)
4. E por fim ;6) indicamos que a procura deverá ocorrer na coluna 6.
Avançando um pouco mais, podemos continuar a procurar por "João" mas indicando desta feita a célula L2, onde João está escrito.
=ÍNDICE(B2:I14;CORRESP("João";B2:B14;0);6)
=ÍNDICE(B2:I14;CORRESP(L2;B2:B14;0);6) // em vez de "João" colocamos L2
Mas ainda podemos transformar mais a fórmula para automatizar ainda mais o processo.Sabemos que o CORRESP funciona tanto na vertical como na horizontal.
Vamos procurar as vendas de Janeiro da Maria.
=ÍNDICE(B2:I14;CORRESP(L5;B2:B14;0);CORRESP(L6;B1:I1;0))
1. Definimos novamente a tabela de procura com =ÍNDICE(B2:I14;2. Procuramos por Maria na coluna B12:B14 com CORRESP(L5;B2:B14;0)
3. E procuramos por Janeiro na linha B1:I1 com CORRESP(L6;B1:I1;0))
4. E por último, introduzimos uma vantagem enorme face ao PROCV (Vlookup): procurar valores à esquerda.
=ÍNDICE(B2:I14;CORRESP(L9;I2:I14;0);CORRESP(L11;B1:I1;0))
1. A mesma tabela de procura com =ÍNDICE(B2:I14;2. Mas desta vez vamos usar a última coluna que tem o ID dos Vendedores para demonstrar a busca à esquerda.
3. Procuramos pelo vendedor com o ID_2 com CORRESP(L9;I2:I14;0);
4. E procuramos por Março na linha B1:I1 com CORRESP(L11;B1:I1;0))
O PROCV (Vlookup) transformado em ÍNDICE/CORRESP (Index/Match)
Uma das utilizações mais comuns das Funções ÍNDICE/CORRESP (Index/Match) em conjunto é substituir a Função PROCV (Vlookup)=ÍNDICE($B$2:$B$14;CORRESP($L2;$I$2:$I$14;0))
1. Começamos por dizer ao Excel que o resultado que procuramos está nesta coluna =ÍNDICE($B$2:$B$14.2. E que o valor que serve de busca está nesta célula CORRESP($L2; e vamos procurá-lo na coluna $I$2:$I$14;.
3. Nunca esquecendo de referir que queremos o valor exacto 0)) antes de fechar parentesis.
Procuramos por ID_1 na coluna I e recebemos de volta o valor Vera da coluna B
Descargas
Descarrega aqui o ficheiro com os exemplos para procurar valores com INDEX e MATCH