Skip to main content

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

Como localizar o primeiro valor não zero e retornar o cabeçalho de coluna correspondente no Excel?

Author Xiaoyang Last modified

Ao trabalhar com dados no Excel, é comum precisar identificar a posição da primeira entrada não zero em uma linha e exibir o cabeçalho de coluna associado. Por exemplo, em um conjunto de dados onde cada linha representa um item ou pessoa diferente e as colunas representam períodos de tempo ou categorias, você pode querer saber quando um valor aparece pela primeira vez para cada linha. Verificar manualmente cada linha para o primeiro valor não zero pode ser demorado, especialmente à medida que o tamanho dos dados aumenta. Automatizar esse processo de busca não apenas melhora a eficiência, mas também reduz erros, tornando suas análises mais confiáveis. Este artigo explica várias maneiras práticas de alcançar esse objetivo, desde o uso de fórmulas versáteis do Excel até a utilização de macros VBA, particularmente úteis para grandes conjuntos de dados ou relatórios recorrentes.

lookup first non-zero value and return corresponding column header


arrow blue right bubble Localize o primeiro valor não zero e retorne o cabeçalho de coluna correspondente com fórmula

Para identificar eficientemente o cabeçalho de coluna em uma determinada linha onde o primeiro valor não zero aparece, você pode usar uma fórmula interna do Excel. Essa abordagem é especialmente adequada para conjuntos de dados de pequeno a médio porte, onde a recalculação em tempo real e a facilidade de configuração são importantes.

1. Selecione uma célula em branco para exibir o resultado; neste exemplo, a célula K2 é usada.

=INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0))

2. Após inserir a fórmula, pressione Enter para confirmar. Em seguida, selecione K2 e use a alça de preenchimento para arrastar a fórmula para baixo, aplicando-a às demais linhas conforme necessário.

use a formula to lookup first non-zero value and return corresponding column header

Observação: Na fórmula acima, B1:I1 refere-se ao intervalo de cabeçalhos de coluna que deseja retornar, e B2:I2 é a linha de dados que está sendo analisada para o primeiro valor não zero.

Se seus dados começarem em colunas ou linhas diferentes, lembre-se de ajustar os intervalos da fórmula de acordo. Além disso, essa fórmula funciona de forma eficaz desde que haja pelo menos um valor não zero em cada linha analisada; se todos os valores forem zero, a fórmula retornará um erro. Nesses casos, considere encapsular a fórmula em IFERROR desta forma: =IFERROR(INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0)),"Nenhum valor não-zero") para retornar uma mensagem personalizada em vez de um erro.

Essa solução baseada em fórmula é ideal quando você deseja resultados dinâmicos e atualizados instantaneamente à medida que seus dados de entrada mudam. No entanto, para conjuntos de dados extremamente grandes, a velocidade de cálculo pode ser afetada, e você pode buscar uma abordagem VBA para melhorar a automação de fluxo de trabalho ou reduzir operações manuais.

arrow blue right bubble Use macro VBA para encontrar e retornar o cabeçalho de coluna do primeiro valor não zero em cada linha

Se você frequentemente precisa realizar essa tarefa de busca em muitas linhas ou em grandes conjuntos de dados, ou se deseja automatizar o processo para maior eficiência, usar uma macro VBA é uma alternativa prática. Esse método é particularmente vantajoso para a geração periódica de relatórios ou quando você está lidando com tabelas de dados que frequentemente mudam de tamanho. A macro irá procurar em cada linha especificada o primeiro valor não zero e retornará o cabeçalho de coluna correspondente para uma célula de destino.

1. Clique na guia Desenvolvedor > Visual Basic para abrir a janela Microsoft Visual Basic for Applications. (Se a guia Desenvolvedor não estiver visível, você pode adicioná-la via Arquivo > Opções > Personalizar Faixa de Opções.) No editor VBA, clique em Inserir > Módulo.

2. Copie e cole o seguinte código VBA no novo módulo:

Sub LookupFirstNonZeroAndReturnHeader()
    Dim ws As Worksheet
    Dim dataRange As Range
    Dim headerRange As Range
    Dim outputCell As Range
    Dim r As Range
    Dim c As Range
    Dim firstNonZeroCol As Integer
    Dim i As Long
    Dim xTitleId As String
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set ws = Application.ActiveSheet
    Set dataRange = Application.InputBox("Select the data range (excluding headers):", xTitleId, Selection.Address, Type:=8)
    If dataRange Is Nothing Then Exit Sub
    Set headerRange = ws.Range(dataRange.Offset(-1, 0).Resize(1, dataRange.Columns.Count).Address)
    For i = 1 To dataRange.Rows.Count
        Set r = dataRange.Rows(i)
        firstNonZeroCol = 0
        
        For Each c In r.Columns
            If c.Value <> 0 And c.Value <> "" Then
                firstNonZeroCol = c.Column - dataRange.Columns(1).Column + 1
                Exit For
            End If
        Next c
        
        Set outputCell = r.Cells(1, r.Columns.Count + 1)
        
        If firstNonZeroCol > 0 Then
            outputCell.Value = headerRange.Cells(1, firstNonZeroCol).Value
        Else
            outputCell.Value = "No non-zero"
        End If
    Next i
    
    On Error GoTo 0
    MsgBox "Completed! Results are in the column to the right of your data.", vbInformation, "KutoolsforExcel"
End Sub

3. Para executar a macro, clique no botão Executar ou pressione a tecla F5. Uma caixa de diálogo solicitará que você selecione o intervalo de dados (excluindo os cabeçalhos de coluna). Após a execução da macro, a coluna imediatamente à direita dos dados selecionados será preenchida com o cabeçalho do primeiro valor não zero para cada linha, ou com a mensagem "Nenhum valor não-zero" se nenhum valor não-zero for encontrado.

Essa abordagem VBA é excelente para tarefas repetitivas e é ótima para lidar com grandes conjuntos de dados, reduzindo o esforço manual. No entanto, certifique-se de que as macros estejam habilitadas no seu ambiente do Excel e sempre faça backup de sua pasta de trabalho antes de executar o código.

Observação: Se você encontrar erros, verifique se sua seleção exclui a linha do cabeçalho e inclui apenas as linhas de dados. 

a screenshot of kutools for excel ai

Desbloqueie a Magia do Excel com o Kutools AI

  • Execução Inteligente: Realize operações de células, analise dados e crie gráficos — tudo impulsionado por comandos simples.
  • Fórmulas Personalizadas: Gere fórmulas sob medida para otimizar seus fluxos de trabalho.
  • Codificação VBA: Escreva e implemente código VBA sem esforço.
  • Interpretação de Fórmulas: Compreenda fórmulas complexas com facilidade.
  • Tradução de Texto: Supere barreiras linguísticas dentro de suas planilhas.
Potencialize suas capacidades no Excel com ferramentas alimentadas por IA. Baixe Agora e experimente uma eficiência como nunca antes!

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