Às vezes você precisa que uma referência mude com base em um valor de célula — referenciar a aba "Janeiro" ou "Fevereiro" dependendo do mês selecionado, ou criar um intervalo que cresce automaticamente. DESLOC e INDIRETO são as ferramentas para isso.

INDIRETO: referência a partir de texto

=INDIRETO(ref_texto; [a1])

Converte um texto que representa um endereço em uma referência real.

Exemplo: se A1 contém o texto "B5", =INDIRETO(A1) retorna o valor da célula B5.

Referenciar planilhas por nome dinamicamente

Se C1 contém o nome do mês ("Janeiro"), você pode buscar a célula B10 da aba com esse nome:

=INDIRETO("'" & C1 & "'!B10")

Mude C1 para "Fevereiro" e a fórmula automaticamente referencia a aba Fevereiro.

Criar listas dependentes com validação de dados

Se você tem nomes de intervalos chamados "Frutas" e "Verduras", e a célula A2 tem uma lista suspensa com "Frutas" ou "Verduras", use =INDIRETO(A2) como fonte da segunda lista suspensa.

DESLOC: deslocando a partir de uma célula de referência

=DESLOC(ref; linhas; colunas; [altura]; [largura])

Exemplo: SOMA dinâmica dos últimos N meses

Se os dados mensais estão em B2:B25 e o mês atual está na coluna baseado em um número em E1:

=SOMA(DESLOC(B2; 0; 0; E1; 1))

Retorna a soma das primeiras E1 linhas a partir de B2.

Intervalo dinâmico para Tabela Dinâmica

Defina um nome de intervalo que usa DESLOC para expandir automaticamente:

=DESLOC(Dados!$A$1; 0; 0;
  CONT.VALORES(Dados!$A:$A);
  CONT.VALORES(Dados!$1:$1))

Esse intervalo cresce automaticamente quando novas linhas e colunas são adicionadas aos dados.

Cuidados com performance

DESLOC e INDIRETO são funções voláteis — recalculam toda vez que qualquer célula do arquivo muda, mesmo sem relação com elas. Em arquivos grandes, prefira Tabelas Inteligentes (Ctrl+T) para intervalos dinâmicos ou as novas funções de array dinâmico (FILTRAR, etc.).

Perguntas frequentes

INDIRETO funciona com referências em outros arquivos abertos?

Sim, mas apenas quando o arquivo referenciado está aberto. Se o arquivo externo estiver fechado, INDIRETO retorna #REF!.

Posso usar DESLOC dentro de SOMA para criar uma média móvel?

Sim: =MÉDIA(DESLOC(B2; LINHA()-LINHA($B$2)-2; 0; 3; 1)) calcula a média dos 3 valores anteriores ao longo de uma coluna.