Fórmulas Voláteis no Excel: as Funções que Deixam sua Planilha Lenta

Resposta rápida: fórmulas voláteis — como HOJE(), AGORA(), ALEATÓRIO(), INDIRETO() e DESLOC() — recalculam a cada mudança em qualquer célula da planilha, não só quando suas próprias células de origem mudam, o que deixa arquivos grandes lentos quando essas funções aparecem em muitas células.

Você digita um valor em qualquer célula de uma planilha grande e o Excel trava por um segundo, dois, às vezes mais, mostrando “Calculando” na barra de status — mesmo quando a célula que você mudou não tem relação nenhuma, à primeira vista, com o resto do arquivo.

Sem entender a causa, a reação comum é culpar o tamanho do arquivo, o computador ou a versão do Excel, quando muitas vezes o verdadeiro motivo é um punhado de funções específicas espalhadas pela planilha, forçando o Excel inteiro a recalcular a cada pequena mudança.

Neste artigo iremos mostrar o que são fórmulas voláteis, quais são as principais funções desse tipo, por que elas pesam tanto no desempenho, e como substituí-las por alternativas mais eficientes sem perder a funcionalidade.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

O que é uma fórmula volátil

No funcionamento normal do Excel, uma fórmula só recalcula quando uma célula da qual ela depende diretamente é alterada — é esse comportamento que permite ao Excel recalcular apenas a parte necessária da planilha, em vez de tudo, mantendo o desempenho rápido mesmo em arquivos grandes. Uma função volátil quebra essa regra: ela é marcada internamente para recalcular sempre que qualquer célula, em qualquer aba, muda, ou sempre que você pressiona F9, independente de haver relação direta com a mudança feita.

As principais funções voláteis

Função volátil O que faz Alternativa não volátil
HOJE() Retorna a data atual Ctrl+; para colar a data como valor fixo, quando não precisa atualizar sozinha
AGORA() Retorna data e hora atuais Ctrl+Shift+; para colar hora fixa, ou HOJE() se não precisar da hora
ALEATÓRIO() / ALEATÓRIOENTRE() Gera número aleatório a cada recálculo Gerar os números uma vez e colar como valor fixo
INDIRETO() Transforma texto em referência de célula PROCX, ÍNDICE+CORRESP ou referência direta, quando possível
DESLOC() Retorna uma referência deslocada a partir de um ponto inicial ÍNDICE() (INDEX), que faz cálculo parecido sem ser volátil
CÉL() e INFO() (alguns argumentos) Retornam informações sobre célula ou ambiente Recalcular só quando necessário, evitar uso em massa

Por que isso pesa tanto

Em uma planilha pequena, com poucas fórmulas voláteis, o impacto é imperceptível. O problema cresce de forma desproporcional em arquivos grandes: se uma planilha tem 5 mil linhas com =DESLOC(…) ou =INDIRETO(…) em uma coluna inteira, cada uma dessas 5 mil células recalcula a cada única mudança feita em qualquer lugar do arquivo — não apenas quando os dados de origem delas mudam. Multiplicando esse comportamento por várias colunas voláteis e várias abas, o tempo de recálculo cresce rápido, e cada F9 ou cada Enter em qualquer célula passa a demorar visivelmente.

Como identificar fórmulas voláteis na sua planilha

O Excel não tem um filtro pronto de “mostrar só fórmulas voláteis”, mas o caminho mais direto é usar Localizar e Substituir (Ctrl+L) com a opção Localizar tudo, buscando pelo nome de cada função volátil (HOJE, AGORA, ALEATÓRIO, INDIRETO, DESLOC) dentro das fórmulas, marcando Examinar: Pasta de trabalho e Procurar em: Fórmulas. O resultado lista todas as células que contêm aquela função, permitindo avaliar o volume de uso antes de decidir se vale a pena substituir.

Substituindo DESLOC por ÍNDICE

O caso mais comum de substituição é trocar DESLOC por ÍNDICE (INDEX). Uma fórmula como =DESLOC(A1;0;2), que retorna o valor duas colunas à direita de A1, pode ser reescrita como =ÍNDICE(A:C;1;3) ou de forma mais direta como referência absoluta, dependendo do caso. A diferença de resultado é nenhuma, mas o comportamento de recálculo muda completamente: ÍNDICE só recalcula quando o intervalo referenciado muda, sem forçar recálculo geral.

Substituindo INDIRETO quando possível

INDIRETO costuma ser usado para montar referências dinâmicas a partir de texto, como em listas suspensas dependentes. Quando o cenário permite, funções como PROCX ou a combinação ÍNDICE + CORRESP resolvem o mesmo problema de busca dinâmica sem depender de texto convertido em referência, evitando o comportamento volátil. Em casos onde INDIRETO é realmente indispensável (referenciar abas cujo nome muda dinamicamente, por exemplo), vale isolar o uso a um número pequeno de células, em vez de espalhar por milhares de linhas.

Congelando HOJE(), AGORA() e ALEATÓRIO() quando não precisam atualizar

Se o objetivo é só carimbar a data em que um relatório foi gerado, sem que ela precise mudar toda vez que o arquivo for reaberto, use Ctrl+; para colar a data atual como valor fixo em vez de manter a fórmula =HOJE() viva na célula. O mesmo vale para números aleatórios: gere os valores com ALEATÓRIO(), depois copie e cole como valores (Ctrl+C, Ctrl+Alt+V, Somente valores), removendo a fórmula volátil depois de já ter o resultado desejado.

Veja também

Fórmulas voláteis são apenas um dos possíveis culpados por uma planilha lenta — para um roteiro completo de diagnóstico, incluindo modo de cálculo, área usada e complementos carregados, veja como diagnosticar o que está deixando sua planilha lenta no Excel. Se o problema for mais sobre quando o Excel recalcula (automático versus manual), veja também cálculo manual vs automático no Excel.

Disponibilidade

O comportamento volátil dessas funções é o mesmo em todas as versões do Excel para Windows e Excel para Mac, incluindo Microsoft 365 e Excel Online. No Google Planilhas, funções equivalentes como HOJE(), AGORA() e ALEATÓRIO() também são voláteis e causam o mesmo tipo de impacto em planilhas grandes.

Perguntas frequentes

O que exatamente torna uma função volátil?

Uma função é volátil quando o Excel a recalcula sempre que qualquer célula da pasta de trabalho muda, ou quando você pressiona F9, mesmo que nenhuma das células que ela referencia diretamente tenha sido alterada. Funções normais só recalculam quando uma célula da qual dependem diretamente muda — é essa diferença que torna as voláteis mais pesadas em planilhas grandes.

Uma única fórmula volátil já deixa a planilha lenta?

Sozinha, dificilmente. O problema aparece quando há centenas ou milhares de células com fórmulas voláteis (ou fórmulas normais que dependem delas), porque cada uma força um recálculo completo a cada pequena alteração na planilha, mesmo em partes sem relação nenhuma com o cálculo em questão. É o acúmulo, não a função isolada, que causa a lentidão perceptível.

Trocar DESLOC por ÍNDICE realmente resolve o problema de performance?

Sim, na maioria dos casos. ÍNDICE (INDEX) devolve o conteúdo de uma célula dentro de um intervalo com base em uma posição de linha e coluna, cumprindo o mesmo papel de referência dinâmica que o DESLOC costuma resolver, mas sem ser uma função volátil — o Excel só recalcula o ÍNDICE quando as células das quais ele depende diretamente mudam.

Compartilhe ou Comente

Se você curtiu esse artigo aonde mostramos o que são fórmulas voláteis e como elas deixam a planilha lenta, 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.

Você já identificou uma função volátil como causa de lentidão numa planilha sua? Usa DESLOC ou INDIRETO com frequência no seu trabalho? Conta para nós nos comentários!

Deixe um comentário

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