Como localizar o primeiro valor não zero e retornar o cabeçalho de coluna correspondente no Excel?
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.
- Localize o primeiro valor não zero e retorne o cabeçalho de coluna correspondente com fórmula
- Use macro VBA para encontrar e retornar o cabeçalho de coluna do primeiro valor não zero em cada linha
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.
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.
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.

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.
Melhores Ferramentas de Produtividade para Office
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.





- 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