Come cercare il primo valore non zero e restituire l'intestazione di colonna corrispondente in Excel?
Quando si lavora con i dati in Excel, è comune dover identificare la posizione del primo valore non zero all'interno di una riga e visualizzare l'intestazione di colonna associata. Ad esempio, in un set di dati in cui ogni riga rappresenta un elemento o una persona diversa e le colonne rappresentano periodi di tempo o categorie, potresti voler sapere quando un valore appare per la prima volta per ogni riga. Controllare manualmente ogni riga per il primo valore non zero può essere dispendioso in termini di tempo, specialmente man mano che la dimensione dei dati cresce. Automatizzare questo processo di ricerca non solo migliora l'efficienza, ma riduce anche gli errori, rendendo le tue analisi più affidabili. Questo articolo spiega diversi modi pratici per raggiungere questo obiettivo, dall'utilizzo di formule Excel versatili all'impiego di macro VBA particolarmente utili per grandi set di dati o report ricorrenti.
- Cerca il primo valore non zero e restituisce l'intestazione di colonna corrispondente con una formula
- Usa una macro VBA per trovare e restituire l'intestazione di colonna del primo valore non zero in ogni riga
Cerca il primo valore non zero e restituisce l'intestazione di colonna corrispondente con una formula
Per identificare in modo efficiente l'intestazione della colonna in una determinata riga dove appare il primo valore non zero, puoi utilizzare una formula incorporata di Excel. Questo approccio è particolarmente adatto per set di dati di piccole o medie dimensioni, dove il ricalcolo in tempo reale e la facilità di configurazione sono importanti.
1. Seleziona una cella vuota per visualizzare il risultato; in questo esempio, viene usata la cella K2.
=INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0))
2. Dopo aver inserito la formula, premi Invio per confermare. Quindi, seleziona K2 e usa la maniglia di riempimento per trascinare la formula verso il basso per applicarla al resto delle righe secondo necessità.
Nota: Nella formula sopra, B1:I1 si riferisce all'intervallo di intestazioni di colonna che desideri restituire, e B2:I2 è la riga di dati che stai analizzando per il primo valore non zero.
Se i tuoi dati iniziano in colonne o righe diverse, ricorda di regolare i range della formula di conseguenza. Inoltre, questa formula funziona efficacemente fintanto che c'è almeno un valore non zero in ogni riga analizzata; se tutti i valori sono zero, la formula restituirà un errore. In tali casi, considera di avvolgere la formula in IFERROR
come questa: =IFERROR(INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0)),'Nessun non-zero')
per restituire un messaggio personalizzato invece di un errore.
Questa soluzione basata su formule è ideale quando desideri risultati dinamici e aggiornati istantaneamente man mano che cambiano i dati di input. Tuttavia, per set di dati estremamente grandi, la velocità di calcolo potrebbe risentirne, e potresti prendere in considerazione un approccio VBA per migliorare l'automazione del flusso di lavoro o ridurre le operazioni manuali.
Usa una macro VBA per trovare e restituire l'intestazione di colonna del primo valore non zero in ogni riga
Se devi spesso eseguire questa operazione di ricerca su molte righe o su grandi set di dati, o se vuoi automatizzare il processo per efficienza, usare una macro VBA è una valida alternativa. Questo metodo è particolarmente vantaggioso per la generazione di report periodici o quando gestisci tabelle di dati che cambiano frequentemente di dimensione. La macro cercherà in ogni riga specificata il primo valore non zero e restituirà l'intestazione di colonna corrispondente a una cella di destinazione.
1. Clicca sulla scheda Sviluppatore > Visual Basic per aprire la finestra Microsoft Visual Basic for Applications. (Se la scheda Sviluppatore non è visibile, puoi aggiungerla tramite File > Opzioni > Personalizza barra multifunzione.) Nell'editor VBA, clicca su Inserisci > Modulo.
2. Copia e incolla il seguente codice VBA nel nuovo modulo:
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. Per eseguire la macro, clicca sul pulsante Esegui o premi il tasto F5. Una finestra di dialogo ti chiederà di selezionare l'intervallo di dati (escludendo le intestazioni di colonna). Dopo l'esecuzione della macro, la colonna immediatamente a destra dell'intervallo di dati selezionato verrà riempita con l'intestazione del primo valore non zero per ogni riga, o con un messaggio "Nessun non-zero" se non viene trovato alcun valore non zero.
Questo approccio VBA eccelle in compiti ripetitivi ed è eccellente per gestire grandi set di dati, riducendo lo sforzo manuale. Tuttavia, assicurati che le macro siano abilitate nel tuo ambiente Excel e fai sempre un backup del tuo foglio di lavoro prima di eseguire il codice.
Nota: Se riscontri errori, verifica che la tua selezione escluda la riga delle intestazioni e includa solo le righe dei dati.

Sblocca la Magia di Excel con Kutools AI
- Esecuzione Intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici — tutto guidato da semplici comandi.
- Formule Personalizzate: Genera formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA senza sforzo.
- Interpretazione delle Formule: Comprendi facilmente formule complesse.
- Traduzione del Testo: Superare le barriere linguistiche all'interno dei tuoi fogli di calcolo.
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e farti risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta le schede su Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra invece che in nuove finestre.
- Aumenta la produttività del50% e riduce centinaia di clic del mouse ogni giorno!
Tutti gli add-in Kutools. Un solo programma di installazione
La suite Kutools for Office include add-in per Excel, Word, Outlook & PowerPoint più Office Tab Pro, ideale per i team che lavorano su più app di Office.





- Suite tutto-in-uno — Add-in per Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Un solo programma di installazione, una sola licenza — configurazione in pochi minuti (pronto per MSI)
- Funzionano meglio insieme — produttività ottimizzata su tutte le app Office
- Prova completa30 giorni — nessuna registrazione, nessuna carta di credito
- Massimo risparmio — costa meno rispetto all’acquisto singolo degli add-in