DESLOC no Excel: o que é, como funciona e quando usar essa função poderosa

Entre as funções de referência do Excel, o DESLOC é uma das mais versáteis e uma das mais mal compreendidas. Muita gente passa anos usando Excel sem nunca encontrá-la, e quando encontra fica confusa com a explicação técnica. Mas quando você entende o que o DESLOC faz na prática, abre uma série de possibilidades que simplesmente não são possíveis com as referências fixas do Excel convencional. Neste artigo iremos mostrar o que é a função DESLOC no Excel, como funciona cada um dos seus argumentos e em quais situações ela faz a diferença no trabalho com planilhas.

O que é a função DESLOC no Excel

A função DESLOC (em inglês OFFSET) retorna uma referência deslocada de uma célula ou intervalo de origem por um número específico de linhas e colunas. Em vez de referenciar uma célula diretamente pelo seu endereço fixo (como B5 ou C10), o DESLOC calcula dinamicamente qual célula ou intervalo referenciar com base em uma posição de partida e em quantas linhas e colunas você quer se deslocar a partir daí. O resultado é uma referência dinâmica — que muda conforme os parâmetros de deslocamento mudam — e não uma referência estática.

A sintaxe completa do DESLOC é: =DESLOC(ref; lins; cols; [altura]; [largura]). O primeiro argumento, ref, é a célula ou intervalo de partida — o ponto de origem do deslocamento. O segundo, lins, é o número de linhas para se deslocar a partir da referência: positivo para descer, negativo para subir. O terceiro, cols, é o número de colunas para se deslocar: positivo para a direita, negativo para a esquerda. Os dois últimos argumentos são opcionais: altura define quantas linhas terá o intervalo retornado, e largura define quantas colunas. Quando omitidos, o DESLOC retorna uma referência do mesmo tamanho da referência de origem.

Um exemplo prático simples: =DESLOC(A1; 3; 2) retorna o conteúdo da célula que está 3 linhas abaixo e 2 colunas à direita de A1 — ou seja, a célula C4. Se A1 é a referência de partida, 3 linhas abaixo chega na linha 4, e 2 colunas à direita da coluna A chega na coluna C. O resultado é idêntico a simplesmente escrever =C4, mas com a diferença crucial de que os parâmetros 3 e 2 podem ser substituídos por referências a células — tornando o endereço calculado completamente dinâmico e controlado por valores que podem mudar.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

Os argumentos de altura e largura: criando intervalos dinâmicos

Os argumentos opcionais de altura e largura são o que tornam o DESLOC realmente poderoso. Eles permitem que o DESLOC não retorne apenas uma célula, mas um intervalo de células de qualquer tamanho — e esse tamanho pode ser calculado dinamicamente por outra fórmula. Quando você combina o DESLOC com uma função que conta registros (como CONT.VALORES), você cria um intervalo que se expande automaticamente conforme novos dados são adicionados.

Por exemplo: =SOMA(DESLOC(A1; 0; 0; CONT.VALORES(A:A); 1)) soma automaticamente todos os valores da coluna A que têm algum conteúdo, independentemente de quantos dados existem. O CONT.VALORES(A:A) conta quantas células não vazias existem na coluna A e usa esse número como a altura do intervalo retornado pelo DESLOC. Quando você adiciona uma nova linha de dados na coluna A, o CONT.VALORES aumenta, o DESLOC expande o intervalo automaticamente e a SOMA inclui o novo valor sem nenhuma alteração na fórmula.

Essa capacidade de criar intervalos dinâmicos baseados em contagem de dados é uma das aplicações mais úteis do DESLOC. Antes das Tabelas do Excel (Ctrl+T) existirem, o DESLOC com CONT.VALORES era a principal forma de criar intervalos nomeados dinâmicos que cresciam com os dados. Mesmo com as Tabelas do Excel disponíveis hoje, o DESLOC ainda é útil em situações onde você precisa de um intervalo dinâmico dentro de uma fórmula específica sem criar uma Tabela formal ou um nome de intervalo separado.

DESLOC é uma função volátil: o que isso significa na prática

Uma característica importante do DESLOC que muita gente desconhece é que ela é uma função volátil. Funções voláteis no Excel são recalculadas toda vez que qualquer célula da planilha é alterada, independentemente de as células que a fórmula usa terem mudado ou não. A maioria das funções do Excel só recalcula quando seus argumentos mudam. O DESLOC (assim como INDIRETO, AGORA, HOJE e ALEATÓRIO) recalcula sempre — em cada pressionamento de tecla, em cada edição em qualquer célula da planilha.

Para planilhas pequenas, a volatilidade do DESLOC não é um problema. Mas para planilhas com muitas fórmulas DESLOC e grandes volumes de dados, a volatilidade pode degradar significativamente a performance. Cada alteração na planilha dispara o recálculo de todas as fórmulas DESLOC, o que pode deixar o Excel lento e não responsivo. Por isso, a recomendação geral é usar o DESLOC com consciência: em planilhas de uso intenso com muitos dados, prefira Tabelas do Excel ou funções não-voláteis como ÍNDICE para criar referências dinâmicas quando possível.

A função ÍNDICE é frequentemente usada como alternativa não-volátil ao DESLOC. O par ÍNDICE+CORRESP consegue replicar muitos dos comportamentos do DESLOC sem a volatilidade. Mas há situações onde o DESLOC não tem substituto direto — especialmente quando você precisa de um intervalo dinâmico de tamanho variável como argumento de outra função, como no caso do SOMA(DESLOC(…)) com altura calculada. Nesses casos específicos, o DESLOC é a ferramenta certa, e o impacto na performance precisa ser avaliado e aceito como contrapartida da funcionalidade que ele oferece.

Combinando DESLOC com outras funções para análises avançadas

O DESLOC raramente é usado sozinho. Ele funciona como um bloco de construção que, combinado com outras funções, cria análises que seriam muito mais difíceis ou impossíveis de outras formas. Uma das combinações mais usadas é SOMA(DESLOC(…)) para somar janelas móveis de dados — por exemplo, os últimos 3 meses de vendas, independentemente de qual mês é o atual.

Para calcular a média dos últimos 3 valores de uma lista: =MÉDIA(DESLOC(A1; CONT.VALORES(A:A)-3; 0; 3; 1)). Aqui, o deslocamento em linhas é calculado como o total de valores menos 3, o que posiciona a referência de partida na terceira linha antes do final da lista. A altura 3 garante que o intervalo retornado tem exatamente 3 linhas. A largura 1 mantém apenas uma coluna. O resultado é sempre a média dos últimos 3 registros, atualizada automaticamente quando um novo dado é adicionado à lista.

Outra combinação poderosa é DESLOC com CORRESP para criar um localizador dinâmico de posição. O CORRESP encontra a posição de um valor em um intervalo e o DESLOC usa essa posição como parâmetro de deslocamento para retornar a célula correspondente em outra coluna — de forma semelhante ao PROCV, mas sem a limitação de que a busca precisa ser na primeira coluna. Essa combinação é especialmente útil em análises de séries temporais onde você quer encontrar o valor correspondente a um mês específico em uma tabela com muitas colunas.

Se você curtiu esse artigo onde mostramos o que é e como funciona a função DESLOC no Excel, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *