Como encontrar o primeiro valor diferente de zero e devolver o respetivo cabeçalho da coluna no Excel?
Ao trabalhar com dados no Excel, é comum precisar identificar a posição da primeira entrada diferente de zero numa linha e apresentar o respetivo cabeçalho da coluna. Por exemplo, num conjunto de dados em que cada linha representa um item ou pessoa distintos e as colunas correspondem a períodos temporais ou categorias, poderá querer saber quando surge pela primeira vez um valor em cada linha. Verificar manualmente cada linha à procura do primeiro valor diferente de zero pode ser demorado, especialmente à medida que o volume de dados cresce. Automatizar este processo não só aumenta a eficiência como também reduz erros, tornando as suas análises mais fiáveis. Este artigo apresenta várias abordagens práticas para alcançar este objetivo, desde o uso de fórmulas versáteis do Excel até à aplicação de macros VBA, particularmente úteis para grandes volumes de dados ou relatórios recorrentes.

- Localizar o primeiro valor diferente de zero e devolver o respetivo cabeçalho da coluna com uma fórmula
- Utilize uma macro VBA para localizar e devolver o cabeçalho da coluna do primeiro valor diferente de zero em cada linha
Localizar o primeiro valor diferente de zero e devolver o respetivo cabeçalho da coluna com uma fórmula
Para identificar eficientemente o cabeçalho da coluna na linha onde surge o primeiro valor diferente de zero, pode utilizar uma fórmula incorporada do Excel. Esta abordagem revela-se especialmente adequada para conjuntos de dados pequenos a médios, em que a recalculação em tempo real e a facilidade de configuração são essenciais.
1. Selecione uma célula vazia para apresentar o resultado; neste exemplo, utiliza-se a célula K2.
=INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0)) 2. Após introduzir a fórmula, prima Enter para confirmar. Em seguida, selecione K2 e utilize a alça de preenchimento para arrastar a fórmula para baixo, aplicando-a às restantes linhas conforme necessário.

Nota: Na fórmula acima, B1:I1 refere-se ao intervalo dos cabeçalhos das colunas que pretende devolver e B2:I2 é a linha de dados que está a analisar à procura do primeiro valor diferente de zero.
Se os seus dados começarem em colunas ou linhas diferentes, lembre-se de ajustar os intervalos da fórmula em conformidade. Além disso, esta fórmula funciona eficazmente desde que exista pelo menos um valor diferente de zero em cada linha analisada; se todos os valores forem zero, a fórmula devolverá um erro. Nestes casos, envolva a fórmula com SEERRO da seguinte forma: =IFERROR(INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0)),"No non-zero") para obter uma mensagem personalizada em vez de um erro.
Esta solução baseada em fórmulas é ideal quando pretende resultados dinâmicos que se atualizem instantaneamente à medida que os seus dados de entrada mudam. Contudo, em conjuntos de dados extremamente grandes, a velocidade de cálculo poderá ser afetada, podendo considerar uma abordagem VBA para otimizar a automatização do fluxo de trabalho ou reduzir operações manuais.
Utilize uma macro VBA para localizar e devolver o cabeçalho da coluna do primeiro valor diferente de zero em cada linha
Se precisar frequentemente de realizar esta tarefa de pesquisa em múltiplas linhas ou em grandes conjuntos de dados, ou se pretender automatizar o processo para ganhar eficiência, utilizar uma macro VBA é uma solução prática e inteligente. Este método revela-se especialmente vantajoso na geração periódica de relatórios ou ao trabalhar com tabelas cujo tamanho varia frequentemente. A macro irá procurar, em cada linha especificada, o primeiro valor diferente de zero e devolver o respetivo cabeçalho da coluna para uma célula de destino.
1. Clique no separador Programador > Visual Basic para abrir a janela do Microsoft Visual Basic para Aplicações. (Se o separador Programador não estiver visível, pode adicioná-lo através de)Ficheiro > Opções > Personalizar Friso.) 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 prima a tecla F5. Ser-lhe-á apresentada uma caixa de diálogo a solicitar que selecione o Intervalo de Dados (excluindo os cabeçalhos das colunas). Após a execução da macro, a coluna imediatamente à direita dos dados selecionados será preenchida com o cabeçalho correspondente ao primeiro valor diferente de zero em cada linha ou com a mensagem «No non-zero», caso não seja encontrado nenhum valor diferente de zero.
Esta abordagem VBA destaca-se em tarefas repetitivas e é ideal para gerir grandes conjuntos de dados, minimizando o esforço manual. Contudo, certifique-se de que as macros estão ativadas no seu ambiente do Excel e faça sempre uma cópia de segurança da sua pasta de trabalho antes de executar qualquer código.
Nota: Se encontrar erros, verifique se a sua seleção exclui a linha de cabeçalho e inclui apenas as linhas de dados.

Desbloqueie a Magia do Excel com KUTOOLS AI
- Execução Inteligente: Realize operações em células, analise dados e crie gráficos — tudo impulsionado por comandos simples.
- fórmulas personalizadas: Crie fórmulas personalizadas para simplificar os seus fluxos de trabalho.
- Programação VBA: Escreva e implemente código VBA com facilidade.
- Interpretação de Fórmulas: Compreenda facilmente fórmulas complexas.
- Tradução de Texto: Elimine barreiras linguísticas nas suas folhas de cálculo.
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos