ÍNDICE, CORRESP e DESLOC — Buscas Avançadas e Fórmulas de Matriz
Objetivo da Aula
Ao final desta aula, você será capaz de:
- Entender o que são matrizes no Excel e como o Excel enxerga um intervalo de células
- Entender o que é uma fórmula de matriz e quando ela é necessária
- Usar o atalho Ctrl+Shift+Enter corretamente
- Utilizar a função ÍNDICE para retornar um valor a partir de uma posição
- Utilizar a função CORRESP para encontrar a posição de um valor
- Combinar ÍNDICE + CORRESP como alternativa mais flexível ao PROCV
- Utilizar a função DESLOC para criar referências dinâmicas
1. O que é uma Matriz no Excel?
Uma matriz (ou array) é simplesmente um conjunto de valores organizados em linhas e colunas — ou seja, qualquer intervalo de células (A1:A10, B2:D2, A1:C5) pode ser tratado pelo Excel como uma matriz.
Existem dois tipos principais:
| Tipo | Exemplo | Descrição |
|---|---|---|
| Matriz de uma dimensão (vetor) | A1:A10 ou A1:J1 | Uma única linha ou coluna |
| Matriz de duas dimensões | A1:D10 | Várias linhas e colunas ao mesmo tempo |
💡 Dica: Você não precisa “criar” uma matriz — qualquer intervalo que você seleciona já é, por definição, uma matriz para o Excel. O que muda é como a fórmula processa esse intervalo.
2. O que é uma Fórmula de Matriz?
Uma fórmula de matriz (array formula) é uma fórmula capaz de realizar múltiplos cálculos ao mesmo tempo, sobre um ou mais intervalos, e retornar um único resultado ou vários resultados de uma vez — sem precisar de colunas auxiliares.
Exemplo prático — sem fórmula de matriz (precisa de coluna auxiliar):
| A | B | C | |
|---|---|---|---|
| 1 | Produto | Preço | Qtd |
| 2 | Caneta | 2,50 | 10 |
| 3 | Caderno | 15,90 | 5 |
| 4 | Total |
Para somar o valor total (Preço × Qtd de cada linha), normalmente você criaria uma coluna auxiliar D com =B2*C2, =B3*C3 e depois somaria a coluna D.
Com fórmula de matriz, isso é feito em uma única célula:
=SOMA(B2:B3*C2:C3)
O Excel multiplica cada linha do intervalo B2:B3 pela linha correspondente em C2:C3 (2,50×10 e 15,90×5), formando uma matriz temporária de resultados, e depois soma tudo — sem precisar da coluna D.
3. O Atalho Ctrl+Shift+Enter (CSE)
Em versões mais antigas do Excel (2019 e anteriores), sempre que você digita uma fórmula que processa uma matriz inteira de uma vez (como o exemplo acima), é necessário confirmar com Ctrl+Shift+Enter em vez de apenas Enter.
Como fazer:
- Digite a fórmula normalmente (sem os
{ }) - Em vez de apertar Enter, pressione Ctrl+Shift+Enter ao mesmo tempo
- O Excel automaticamente envolve a fórmula em chaves:
{=SOMA(B2:B3*C2:C3)}
⚠️ Atenção: Você nunca deve digitar as chaves { } manualmente — elas são inseridas automaticamente pelo Excel quando você usa Ctrl+Shift+Enter. Se você digitar { e } na mão, o Excel vai interpretar como texto literal, não como fórmula de matriz.
💡 Dica: No Microsoft 365 e Excel 2021+, a maioria das fórmulas de matriz funciona automaticamente com Enter simples, graças a um recurso chamado matrizes dinâmicas (dynamic arrays). Mesmo assim, é importante saber usar Ctrl+Shift+Enter, pois muitas planilhas antigas e muitos ambientes corporativos ainda usam versões do Excel que exigem esse atalho.
Como saber se uma fórmula é de matriz? Ao clicar na célula e olhar a barra de fórmulas, uma fórmula de matriz confirmada com CSE aparece envolvida por chaves: {=FÓRMULA}.
4. Função ÍNDICE — Retornando um Valor por Posição
A função ÍNDICE retorna o valor que está em uma determinada posição (linha e coluna) dentro de um intervalo.
Sintaxe
=ÍNDICE(matriz; núm_linha; [núm_coluna])- matriz: o intervalo onde está o valor
- núm_linha: a posição da linha dentro do intervalo (contando a partir da primeira linha do intervalo, não da planilha)
- núm_coluna: a posição da coluna (opcional se a matriz tiver apenas uma coluna)
Exemplo prático
| A | B | C | |
|---|---|---|---|
| 1 | Produto | Categoria | Preço |
| 2 | Caneta | Papelaria | 2,50 |
| 3 | Notebook | Eletrônicos | 3.200,00 |
| 4 | Caderno | Papelaria | 15,90 |
=ÍNDICE(A2:C4;2;1) → NotebookO Excel foi até a 2ª linha e 1ª coluna do intervalo A2:C4 e retornou “Notebook”.
=ÍNDICE(A2:C4;3;3) → 15,903ª linha, 3ª coluna do intervalo → o preço do Caderno.
💡 Dica: Sozinha, a função ÍNDICE exige que você já saiba a posição exata (linha e coluna) do dado. Na prática, ela quase sempre é combinada com a função CORRESP, que descobre essa posição automaticamente — veremos isso na seção 6.
5. Função CORRESP — Encontrando a Posição de um Valor
A função CORRESP faz o caminho inverso do ÍNDICE: em vez de retornar um valor a partir de uma posição, ela retorna a posição de um valor dentro de um intervalo.
Sintaxe
=CORRESP(valor_procurado; matriz_procurada; tipo_correspondência)- valor_procurado: o que você quer localizar
- matriz_procurada: o intervalo (linha ou coluna) onde procurar
- tipo_correspondência:
0para correspondência exata (o mais usado),1para o maior valor ≤ ao procurado (lista crescente),-1para o menor valor ≥ ao procurado (lista decrescente)
Exemplo prático
| A | |
|---|---|
| 1 | Caneta |
| 2 | Notebook |
| 3 | Caderno |
=CORRESP("Caderno";A1:A3;0) → 3“Caderno” está na 3ª posição do intervalo A1:A3.
⚠️ Atenção: O CORRESP retorna a posição relativa dentro do intervalo, não o número da linha da planilha. Se o intervalo começasse em A5, e o valor estivesse em A7, o CORRESP retornaria 3 (a 3ª posição dentro do intervalo A5:A10), não 7.
6. Combinando ÍNDICE + CORRESP — A Dupla Mais Poderosa do Excel
Sozinhas, ÍNDICE e CORRESP têm uso limitado. Juntas, elas recriam (e superam) o que o PROCV faz — com a vantagem de buscar em qualquer direção, inclusive para a esquerda, algo que o PROCV não consegue.
Sintaxe combinada
=ÍNDICE(matriz_retorno; CORRESP(valor_procurado; matriz_procurada; 0))O CORRESP descobre a posição, e o ÍNDICE usa essa posição para trazer o valor correspondente.
Exemplo prático
| A | B | C | |
|---|---|---|---|
| 1 | Código | Produto | Preço |
| 2 | P001 | Caneta | 2,50 |
| 3 | P002 | Notebook | 3.200,00 |
| 4 | P003 | Caderno | 15,90 |
Buscando para a direita (o PROCV também faria):
=ÍNDICE(C2:C4;CORRESP("P002";A2:A4;0)) → 3.200,00Buscando para a esquerda (o PROCV NÃO consegue fazer isso):
=ÍNDICE(A2:A4;CORRESP("Caderno";B2:B4;0)) → P003Repare que aqui buscamos o nome do produto (coluna B) e retornamos o código (coluna A) — que está à esquerda da coluna de busca. Isso é impossível com PROCV puro, mas simples com ÍNDICE+CORRESP.
💡 Dica: Essa combinação é considerada, por muitos profissionais de Excel, mais robusta que o PROCV, porque não quebra se uma coluna for inserida ou excluída no meio da tabela (o PROCV depende de contar o número da coluna manualmente, o que pode gerar erros silenciosos).
7. Função DESLOC — Referências Dinâmicas
A função DESLOC (em inglês, OFFSET) retorna uma referência a um intervalo que fica a uma certa distância (deslocamento) de uma célula inicial — deslocando um número de linhas e colunas definido por você.
Sintaxe
=DESLOC(referência; núm_linhas; núm_colunas; [altura]; [largura])
- referência: a célula ou intervalo de partida
- núm_linhas: quantas linhas deslocar (positivo = para baixo, negativo = para cima)
- núm_colunas: quantas colunas deslocar (positivo = para direita, negativo = para esquerda)
- altura (opcional): quantas linhas deve ter o resultado
- largura (opcional): quantas colunas deve ter o resultado
Exemplo prático
| A | |
|---|---|
| 1 | 10 |
| 2 | 20 |
| 3 | 30 |
| 4 | 40 |
=DESLOC(A1;2;0) → 30
Partindo de A1, desce 2 linhas (chega em A3) e não desloca colunas → retorna o valor de A3.
=DESLOC(A1;0;0;3;1) → soma possível de A1:A3 se envolvida em SOMA()
Aqui criamos um intervalo dinâmico: partindo de A1, sem deslocar linha/coluna, mas com altura 3 — o resultado é o intervalo A1:A3 inteiro (não um único valor).
Aplicação prática — soma dinâmica:
=SOMA(DESLOC(A1;0;0;3;1)) → 60
⚠️ Atenção: DESLOC é uma função volátil — ela recalcula toda vez que qualquer célula da planilha muda, mesmo que não tenha relação direta com a fórmula. Em planilhas grandes, o uso excessivo de DESLOC pode deixar o arquivo lento. Use com moderação, e apenas quando realmente precisar de um intervalo que muda de tamanho ou posição dinamicamente.
Aplicação comum: criar um intervalo que cresce automaticamente conforme novos dados são adicionados — muito usado em painéis (dashboards) e listas suspensas dinâmicas.
8. Fórmula de Matriz na Prática — Combinando Tudo
Vamos combinar ÍNDICE, CORRESP e o conceito de matriz para fazer uma busca com duas condições ao mesmo tempo (por exemplo, buscar o preço de um produto de uma marca específica).
| A | B | C | |
|---|---|---|---|
| 1 | Produto | Marca | Preço |
| 2 | Arroz | Tio João | 35,00 |
| 3 | Arroz | Camil | 40,00 |
| 4 | Feijão | Camil | 50,00 |
Queremos o preço do “Arroz” da marca “Camil” (40,00). Uma única condição não resolve, pois “Arroz” aparece duas vezes. A solução é uma fórmula de matriz com múltiplas condições, confirmada com Ctrl+Shift+Enter:
=ÍNDICE(C2:C4;CORRESP(1;(A2:A4="Arroz")*(B2:B4="Camil");0))
Digite a fórmula acima e confirme com Ctrl+Shift+Enter. O Excel vai comparar cada linha de A2:A4 com “Arroz” E cada linha de B2:B4 com “Camil” ao mesmo tempo, gerando internamente uma matriz de 1s e 0s (1 quando as duas condições batem), e o CORRESP encontra a posição onde o resultado é 1.
💡 Dica: Isso só funciona como fórmula de matriz (CSE). Se você apenas apertar Enter em versões antigas do Excel, o resultado sairá errado (geralmente #N/D), porque o Excel vai comparar apenas a primeira linha das condições, não todas de uma vez.
9. Resumo da Aula
| Função/Conceito | O que faz |
|---|---|
| Matriz | Qualquer intervalo de células tratado como um bloco de valores |
| Fórmula de matriz | Fórmula que processa uma matriz inteira de uma vez, gerando um ou vários resultados |
| Ctrl+Shift+Enter | Atalho para confirmar fórmulas de matriz em versões mais antigas do Excel |
| ÍNDICE | Retorna o valor de uma posição (linha; coluna) dentro de um intervalo |
| CORRESP | Retorna a posição de um valor dentro de um intervalo |
| ÍNDICE + CORRESP | Alternativa flexível ao PROCV, capaz de buscar em qualquer direção |
| DESLOC | Cria uma referência dinâmica, deslocada de uma célula inicial |
10. Exercício de Fixação
Considere a tabela abaixo:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Código | Produto | Categoria | Preço (R$) |
| 2 | P001 | Mouse | Periféricos | 39,90 |
| 3 | P002 | Teclado | Periféricos | 89,90 |
| 4 | P003 | Monitor | Vídeo | 750,00 |
| 5 | P004 | Webcam | Periféricos | 120,00 |
Escreva as fórmulas para:
- Usando ÍNDICE, retorne o valor que está na 3ª linha e 4ª coluna do intervalo A2:D5
- Usando CORRESP, encontre a posição do produto “Monitor” dentro do intervalo B2:B5
- Combinando ÍNDICE e CORRESP, busque o preço do produto de código “P004”
- Combinando ÍNDICE e CORRESP, busque o código do produto “Teclado” (busca para a esquerda)
- Usando DESLOC, retorne o valor que está 2 linhas abaixo e 1 coluna à direita da célula A2
Gabarito:
=ÍNDICE(A2:D5;3;4) → 750,00
=CORRESP("Monitor";B2:B5;0) → 3
=ÍNDICE(D2:D5;CORRESP("P004";A2:A5;0)) → 120,00
=ÍNDICE(A2:A5;CORRESP("Teclado";B2:B5;0)) → P002
=DESLOC(A2;2;1) → Vídeo
