Skip to main content

Kutools para Office — Uma Suíte. Cinco Ferramentas. Aumente sua Produtividade.

Como sempre obter o valor da célula acima ao inserir ou excluir uma linha no Excel?

Author Xiaoyang Last modified

No Excel, referenciar o valor da célula diretamente acima é um requisito comum para criar totais acumulados, comparações mês a mês ou simplesmente manter a consistência dos dados à medida que sua planilha evolui. Normalmente, você pode referenciar a célula acima usando uma fórmula simples como =D5, mas essa solução tem suas limitações: se você inserir ou excluir linhas, sua fórmula pode não continuar a referenciar a nova célula "acima" conforme o esperado. Como ilustrado abaixo, inserir uma nova linha acima pode quebrar a continuidade ou manter a referência vinculada à célula original em vez de ajustar para a nova posição.

A screenshot showing how the reference to the above cell breaks after inserting a row in Excel

Para resolver esse problema e garantir que sua fórmula sempre recupere o valor da célula imediatamente acima, mesmo após inserir ou excluir linhas, existem várias abordagens que você pode adotar. Cada método apresenta diferentes compensações com base na complexidade da sua planilha, se você deseja uma atualização automática ou uma fórmula manual, e se está confortável usando VBA/macros.

Índice:


arrow blue right bubble Sempre obter o valor da célula acima ao inserir ou excluir linhas com fórmula

Para resolver esse problema de forma simples, sem a necessidade de macros ou configuração complexa, você pode usar uma fórmula que faz referência dinamicamente à célula acima, independentemente de como suas linhas mudam. A fórmula usa as funções INDIRETO e ENDEREÇO do Excel para que a referência sempre "acompanhe" a célula acima, mesmo se as linhas forem deslocadas devido a inserções ou exclusões. Isso a torna especialmente adequada para planilhas onde você modifica frequentemente a estrutura das linhas, como adicionar novos dados no topo ou no meio de uma lista.

Insira a seguinte fórmula diretamente na célula onde você sempre deseja obter o valor da célula acima (por exemplo, na célula B6 se quiser referenciar B5):

=INDIRECT(ADDRESS(ROW()-1,COLUMN()))

Pressione Enter após digitar a fórmula. A célula atual exibirá instantaneamente o valor da célula imediatamente acima, como mostrado abaixo:

A screenshot showing the formula to reference the above cell in Excel using INDIRECT and ADDRESS

Agora, se você inserir uma nova linha em qualquer lugar acima da célula da fórmula de referência, a fórmula será recalculada e sempre exibirá o valor da nova célula acima. Dessa forma, suas fórmulas estarão sempre atualizadas, independentemente de inserções ou exclusões de linhas. Veja a captura de tela abaixo para referência:

A screenshot showing the correct cell reference maintained after inserting a row in Excel

Explicação dos parâmetros e dicas:

  • Essa fórmula puxará o valor da célula diretamente acima da célula da fórmula atual – então usá-la em B6 sempre refletirá B5, mesmo que linhas sejam inseridas ou excluídas acima.
  • Se você usar essa fórmula na primeira linha dos seus dados (como A1), ela pode tentar puxar dados de uma linha inexistente e retornar um erro #REF!. Você pode evitar isso adicionando tratamento de erros, por exemplo, com =SE(LIN()=1;"";INDIRETO(ENDEREÇO(LIN()-1;COL()))) para mostrar vazio na primeira linha.
  • Lembre-se de que INDIRETO é uma função volátil, então, em planilhas extremamente grandes, o uso excessivo pode retardar os cálculos.
  • Usar essa fórmula funciona bem quando você quer preservar uma relação estrita com a localização da linha, não importa como a estrutura da sua planilha mude.

Soluções de problemas e sugestões de resumo:
Se sua fórmula não for atualizada conforme o esperado após inserir ou excluir linhas, verifique se ela foi inserida na célula pretendida. Além disso, certifique-se de que você não está usando referências de células absolutas (como $A$1), que são estáticas. Se você encontrar #REF! erros na primeira linha, considere usar uma fórmula condicional conforme mencionado anteriormente. Para automação avançada, ou se precisar copiar o valor, não apenas referenciá-lo, veja a solução de macro orientada por evento VBA abaixo para uma abordagem dinâmica e baseada em código.


arrow blue right bubbleAtualizar automaticamente o valor da célula a partir da célula acima usando macro orientada por evento VBA (sempre dinâmica)

Se você precisa de uma solução onde o valor da célula sempre se atualiza automaticamente para corresponder à célula acima, independentemente de inserir ou excluir linhas – e deseja que esse comportamento seja gerenciado sem copiar fórmulas – usar uma macro VBA orientada por evento é eficaz. Esse método é ideal para usuários confortáveis em habilitar macros e permite atualizações dinâmicas: sempre que você selecionar uma célula ou intervalo específico, ou quando alterar um valor, a macro pode definir instantaneamente a célula de destino para ser sempre igual ao valor acima, tornando a entrada de dados consistente, não importa como sua planilha mude. Isso é especialmente útil em modelos onde você deseja um padrão fixo ou configuração de valor padrão em cada nova linha.

Aqui está como configurar isso usando o evento Worksheet_Change:

1. Clique com o botão direito na guia da planilha onde deseja essa funcionalidade e selecione Ver Código. O editor Microsoft Visual Basic for Applications abrirá no módulo correto da planilha.

2. Copie e cole o seguinte código VBA na janela do módulo da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim WatchRange As Range
    On Error Resume Next
    ' Set the range you want to monitor (for example, B2:B100)
    Set WatchRange = Intersect(Target, Me.Range("B2:B100"))
    
    If Not WatchRange Is Nothing Then
        Application.EnableEvents = False
        Dim cell As Range
        
        For Each cell In WatchRange
            ' Avoid the first row, or adjust as needed
            If cell.Row > 1 Then
                cell.Value = Me.Cells(cell.Row - 1, cell.Column).Value
            End If
        Next cell
        
        Application.EnableEvents = True
    End If
End Sub

Notas de parâmetros: Substitua "B2:B100" em Me.Range("B2:B100") pelo intervalo real onde deseja esse comportamento (você pode defini-lo para uma coluna inteira, por exemplo, "B:B", mas restringir o intervalo melhora o desempenho e evita sobrescritas indesejadas).

3. Feche o editor VBA. Agora, sempre que uma célula for alterada, inserida ou a planilha for atualizada dentro do intervalo especificado, o Excel atualizará automaticamente essas células para refletir o valor acima. Por exemplo, se você inserir uma linha na linha 5, todas as células monitoradas na coluna B a partir desse ponto pegarão o valor da célula diretamente acima de sua nova posição.

  • Tenha cuidado: este código sobrescreverá valores digitados manualmente dentro do intervalo monitorado. Use com cuidado se tiver células com fórmulas ou desejar preservar entradas originais.
  • Se você quiser continuar usando essa macro VBA no futuro, precisará salvar o arquivo como uma pasta de trabalho habilitada para macro (.xlsm).
  • Código de evento funcionará apenas no módulo da planilha onde a macro foi colada (não em todas as planilhas, a menos que o código seja adicionado a cada módulo de planilha).
  • Se você quiser que a atualização ocorra ao selecionar uma célula em vez de ao alterar um valor, pode usar Worksheet_SelectionChange e uma lógica semelhante.

Soluções de problemas e sugestões de resumo:
Se o script VBA não parecer funcionar após a cópia, certifique-se de que as macros estão habilitadas na sua pasta de trabalho e de que você colou o código no módulo correto da planilha (não em um módulo padrão). Se você receber erros ou experimentar o Excel travando, verifique novamente se Application.EnableEvents está definido como Falso antes de suas alterações automáticas de células e redefinido como Verdadeiro depois para evitar loops recursivos. Para outros comportamentos avançados ou controle mais refinado, considere scripts personalizados com base na estrutura dos seus dados.


Melhores Ferramentas de Produtividade para Office

🤖 Kutools AI Aide: Revolucione a análise de dados com: Execução Inteligente   |  Gerar Código  |  Criar Fórmulas Personalizadas  |  Analisar Dados e Gerar Gráficos  |  Chamar Funções Aprimoradas
Recursos Populares: Localizar, Destacar ou Marcar Duplicatas   |  Excluir Linhas em Branco   |  Consolidar Colunas ou Células sem Perder Dados   |   Arredondar...
Super PROC: Procura por múltiplos critérios    Procura por múltiplos valores  |   Procura em várias planilhas   |   Correspondência Fuzzy...
Lista Suspensa Avançada: Crie rapidamente Lista suspensa  |  Lista suspensa dependente  |  Lista suspensa com múltipla seleção ...
Gerenciador de Colunas: Adicionar número específico de colunas  | Mover Colunas  | Alternar status de visibilidade de Colunas ocultas |  Comparar Intervalos & Colunas...
Recursos em Destaque: Grade de foco   |  Visualização de Design  |  Barra de fórmulas aprimorada    Gerenciador de Pasta de trabalho & Planilha   |  Biblioteca de AutoTexto (Auto Text)   |  Selecionador de Data   |  Mesclar Dados   |  Criptografar/Descriptografar Células    Enviar Email por Lista   |  Super Filtro   |   Filtro Especial (filtrar negrito/itálico/tachado...) ...
Os 15 Principais Conjuntos de Ferramentas: 12 Ferramentas de Texto (Adicionar Texto, Excluir Caracteres Específicos, ...)  | 50+ Tipos de Gráficos (Gráfico de Gantt, ...)  | 40+ Fórmulas Práticas (Calcular a idade com base na data de nascimento, ...)  | 19 Ferramentas de Inserção (Inserir Código QR, Inserir Imagem pelo Caminho, ...)  | 12 Ferramentas de Conversão (Converter em Palavras, Conversão de Moeda, ...)  | 7 Ferramentas de Mesclar & Dividir (Mesclar Linhas Avançado, Dividir Células, ...) | ...e muito mais
Use o Kutools no idioma de sua preferência – compatível com Inglês, Espanhol, Alemão, Francês, Chinês e mais de40 idiomas!

Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência incomparável. Kutools para Excel oferece mais de300 recursos avançados para aumentar a produtividade e economizar tempo.  Clique aqui para acessar o recurso que você mais precisa...


Office Tab traz interface com abas para o Office e facilita muito seu trabalho

  • Habilite edição e leitura por abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie múltiplos documentos em novas abas de uma mesma janela, em vez de em novas janelas.
  • Aumente sua produtividade em50% e economize centenas de cliques todos os dias!

Todos os complementos Kutools. Um instalador

O pacote Kutools for Office reúne complementos para Excel, Word, Outlook & PowerPoint, além do Office Tab Pro, sendo ideal para equipes que trabalham em vários aplicativos do Office.

Excel Word Outlook Tabs PowerPoint
  • Pacote tudo-em-um — complementos para Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Um instalador, uma licença — configuração em minutos (pronto para MSI)
  • Trabalhe melhor em conjunto — produtividade otimizada entre os aplicativos do Office
  • Avaliação completa por30 dias — sem registro e sem cartão de crédito
  • Melhor custo-benefício — economize comparado à compra individual de add-ins