Menu

Erro #DESPEJAR! no Excel (#SPILL!): causas e soluções

#DESPEJAR! significa que uma fórmula que retorna vários valores não tem espaço para colocar esses valores: uma célula do intervalo de despejo não está vazia. Limpe as células no caminho e o resultado aparece.

Todas as planilhas desta página são ao vivo: mude um número ou uma fórmula e elas recalculam.

#DESPEJAR! (#SPILL! em inglês; a tabela mostra os nomes de erro em inglês) significa que uma fórmula retorna vários valores (uma lista ou uma tabela) e o Excel não tem espaço para escrever esses valores: pelo menos uma célula do intervalo de que o resultado precisa não está vazia. A =UNIQUE(A2:A6) abaixo precisa de três células, de C2 a C4, e C4 tem um x. Apague C4 e a lista aparece.

ÚNICO bloqueada por um valor
C2
ABC
1ProductUnique list
2Apple#SPILL!
3Pear
4Applex
5Plum
6Pear
#SPILL! O resultado precisa de mais células livres. Limpe as células que estão no caminho.No Excel em português: =ÚNICO(A2:A6)

Clique em C2: a nota embaixo da grade diz o que está errado. Depois clique em C4 e pressione Delete. Os três produtos são despejados em C2:C4, e um contorno marca o intervalo de despejo. Digite algo em C3 e o erro volta. A ÚNICO (UNIQUE em inglês) também pode ser digitada em português na tabela, com ponto e vírgula: =ÚNICO(A2:A6). O Excel funciona do mesmo jeito: funções que retornam matrizes, como FILTRO, ÚNICO, CLASSIFICAR, SEQUÊNCIA e DIVIDIRTEXTO, só funcionam quando o intervalo de despejo inteiro está livre. Elas precisam do Excel 2021 ou posterior (DIVIDIRTEXTO: Microsoft 365 ou Excel 2024); versões mais antigas mostram #NOME? para elas, então o #DESPEJAR! nunca aparece lá (veja ÚNICO para a função em si).

Como corrigir o erro #DESPEJAR!

  1. Clique na célula com #DESPEJAR!. No Excel, uma borda tracejada mostra o intervalo que o resultado quer preencher.
  2. Clique no ícone de aviso ao lado da célula e escolha Select Obstructing Cells (selecionar as células que obstruem). O Excel seleciona todas as células que estão no caminho.
  3. Pressione Delete, ou mova essas células para outro lugar (recorte e cole).

Se as células no caminho têm dados de que você precisa, mova a fórmula: coloque-a em uma coluna ou linha em que tudo abaixo e ao lado esteja vazio.

#DESPEJAR! quando as células parecem vazias

O caso mais confuso: o intervalo de despejo parece vazio, mas o Excel continua dizendo #DESPEJAR!. Uma célula com um único espaço, ou com uma fórmula que retorna um texto vazio "", não está vazia, e bloqueia o despejo como um valor bloquearia.

Células que parecem vazias, mas bloqueiam
A2
ABC
1NumbersNumbers
2#SPILL!#SPILL!
3
4
#SPILL! O resultado precisa de mais células livres. Limpe as células que estão no caminho.No Excel em português: =SEQUÊNCIA(3)

A2 quer A2:A4, e A4 tem um espaço. C2 quer C2:C3, e C3 tem ="". Clique em A4 ou em C3 para ver o que há ali, apague e os números são despejados. No Excel, Select Obstructing Cells encontra essas células mesmo quando nada aparece nelas. Texto branco em fundo branco se esconde do mesmo jeito.

#DESPEJAR! quando uma fórmula despeja em outra

Duas fórmulas que despejam podem bloquear uma à outra, ou uma fórmula que alguém digitou mais abaixo pode ficar dentro do intervalo de despejo da de cima.

Duas fórmulas no caminho uma da outra
D2
ABCDE
1NameDeptITSales
2AnaIT#SPILL!Ben
3BenSalesDee
4CyIT5
5DeeSales
6EveIT
#SPILL! O resultado precisa de mais células livres. Limpe as células que estão no caminho.No Excel em português: =FILTRO(A2:A6;B2:B6="IT")

A lista de IT precisa de três células, D2:D4, e D4 tem uma fórmula CONT.VALORES. A lista de Sales em E2 tem as duas células de que precisa, então funciona. Mova a fórmula CONT.VALORES para D6 (ou qualquer célula abaixo da lista) e os nomes de IT são despejados. Deixe espaço para a lista crescer: se um quarto funcionário de IT for acrescentado depois, o resultado precisa de mais uma célula.

#DESPEJAR! com PROCV e colunas inteiras

Uma causa comum em fórmulas escritas para o Excel antigo é um valor procurado que é uma coluna inteira:

=VLOOKUP(A:A,Prices!A:B,2,FALSE)      #SPILL!  (one result for every row of the sheet)
=VLOOKUP(A2,Prices!A:B,2,FALSE)       one result, fill it down
=VLOOKUP(A2:A100,Prices!A:B,2,FALSE)  100 results that spill
=VLOOKUP(@A:A,Prices!A:B,2,FALSE)     one result, the value on the formula's own row

No Excel em português: =PROCV(A:A;Prices!A:B;2;FALSO), =PROCV(A2;Prices!A:B;2;FALSO), =PROCV(A2:A100;Prices!A:B;2;FALSO) e =PROCV(@A:A;Prices!A:B;2;FALSO). A:A tem 1.048.576 células, então a primeira fórmula pede 1.048.576 resultados, e da linha 2 para baixo não sobram linhas suficientes: o menu de aviso diz que o intervalo de despejo passa da borda da planilha. Esse padrão vem do Excel antigo, que usava em silêncio só o valor da própria linha da fórmula. O Excel 365 mantém esse comportamento em pastas de trabalho antigas mostrando a fórmula como =PROCV(@A:A;...), mas a mesma fórmula digitada do zero despeja a coluna inteira. O mesmo acontece com =A:A*2 e qualquer outra fórmula que faz contas em uma coluna inteira. Use uma célula e arraste para baixo, um intervalo do tamanho real, ou @. Mais sobre a busca em si está na página do PROCV.

Um resultado por linha em vez de um despejo

Uma fórmula que faz contas com um intervalo também despeja. Muitas vezes é isso que você quer, e às vezes você quer uma fórmula por linha.

Uma fórmula despejada ou uma fórmula por linha
C2
ABCD
1MonthSalesSpilled +10%Filled +10%
2Jan100110110
3Feb120132132
4Mar909999
5Apr140154154
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =B2:B5*1,1

As duas colunas mostram 110, 132, 99 e 154. C2 tem uma fórmula, e C3:C5 são o despejo dela: clique em C3 e a nota embaixo da grade diz que ela é despejada de C2. Digite em C4 e C2 vira #SPILL!. D2:D5 são quatro fórmulas separadas, então cada célula pode ser mudada sozinha e nada consegue bloquear essas fórmulas. Use a segunda forma quando as pessoas vão digitar por cima de resultados isolados.

#DESPEJAR! em uma tabela, com células mescladas ou de tamanho desconhecido

Essas causas dependem da pasta de trabalho, não da fórmula:

  • Dentro de uma tabela do Excel (Inserir > Tabela): as tabelas não aceitam resultados despejados, então uma FILTRO ou uma ÚNICO em uma coluna de tabela mostra #DESPEJAR!. Coloque a fórmula fora da tabela, ou selecione a tabela e escolha Design da Tabela > Converter em Intervalo.
  • Células mescladas no intervalo de despejo: selecione essas células e escolha Página Inicial > Mesclar e Centralizar > Desfazer Mesclagem de Células, ou mova a fórmula.
  • Intervalo de despejo desconhecido: o tamanho do resultado muda a cada recálculo, como em =SEQUÊNCIA(ALEATÓRIOENTRE(1;10)). O Excel se recusa a despejar um resultado de tamanho volátil. Dê a ele um tamanho fixo.
  • Intervalo de despejo grande demais ou passando da borda da planilha: o resultado passaria da última linha ou coluna. Memória insuficiente: a matriz é grande demais para calcular. Nos três casos, reduza os intervalos, normalmente de colunas inteiras para os dados reais.

Retornar um valor só para nada conseguir bloquear

Quando você só precisa de um número de uma lista, como quantos produtos diferentes existem, envolva a função que despeja em uma que retorna um valor único. Um valor único nunca despeja, então nenhuma célula pode ficar no caminho dele.

Quantos produtos diferentes
E2
ABCDE
1ProductDifferent products
2Apple
3Pear
4Applex
5Plum
6Pear
7Apple
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: E2 deve dizer quantos produtos diferentes existem em A2:A7. Uma =UNIQUE(A2:A7) simples seria despejada em cima do x de E4. Escreva em E2 uma fórmula que retorne a contagem.

A CONT.VALORES conta os valores que a ÚNICO retorna e devolve um número só. A mesma ideia funciona com =ÍNDICE(CLASSIFICAR(A2:A7);1) para o primeiro valor de uma lista ordenada, =ÍNDICE(FILTRO(...);1) para a primeira correspondência, ou =SOMA(FILTRO(...)) para um total.

Perguntas frequentes

O que significa #DESPEJAR! no Excel?

Uma fórmula retornou mais de um valor (uma matriz dinâmica) e o Excel não conseguiu escrever esses valores nas células abaixo ou ao lado, porque pelo menos uma delas não está vazia, está mesclada ou está dentro de uma tabela. Limpe ou mova o que está no caminho e os resultados aparecem.

Por que aparece #DESPEJAR! se as células parecem vazias?

Uma célula que parece vazia pode ter um espaço, uma fórmula que retorna "" ou um texto formatado em branco. Qualquer um deles bloqueia o despejo. Clique no ícone de aviso ao lado do erro, escolha Select Obstructing Cells (selecionar as células que obstruem) e pressione Delete.

Como corrigir o #DESPEJAR! com PROCV?

O valor procurado é uma coluna ou um intervalo inteiro, como em =PROCV(A:A;D:E;2;FALSO), então o Excel tenta retornar um resultado por linha da planilha. Use uma célula e arraste para baixo, =PROCV(A2;D:E;2;FALSO), ou um intervalo do tamanho real, =PROCV(A2:A100;D:E;2;FALSO).

Como impedir uma fórmula de despejar no Excel?

Faça a fórmula retornar um valor só. Coloque @ na frente de um intervalo para pegar só o valor da própria linha da fórmula (=@A2:A10*2), ou envolva o resultado em uma função que retorna um valor, como =CONT.VALORES(ÚNICO(A2:A10)) ou =ÍNDICE(CLASSIFICAR(A2:A10);1).

Uma fórmula despejada pode ficar dentro de uma tabela do Excel?

Não. Uma fórmula que despeja mostra #DESPEJAR! dentro de uma tabela. Coloque a fórmula em uma célula fora da tabela, ou converta a tabela em um intervalo comum com Design da Tabela > Converter em Intervalo.

Ilustração das linguagens de programação do Coddy

Aprenda a programar com o Coddy

COMEÇAR