Skip to main content

Kutools per Office — Una Suite. Cinque Strumenti. Ottieni di Più.

Come cercare il primo valore non zero e restituire l'intestazione di colonna corrispondente in Excel?

Author Xiaoyang Last modified

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.

lookup first non-zero value and return corresponding column header


arrow blue right bubble 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à.

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

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.

arrow blue right bubble 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.

a screenshot of kutools for excel ai

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.
Potenzia le tue capacità di Excel con strumenti alimentati dall'IA. Scarica Ora ed esperisci un'efficienza mai vista prima!

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l’analisi dei dati grazie a: Esecuzione intelligente | Genera codice | Crea formule personalizzate | Analizza dati e crea grafici | Attiva Funzioni avanzate
Funzionalità più usate: Trova, evidenziazione o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda senza formula...
Super RICERCA.VERT: Ricerca VERT per criteri multipli | Ricerca VERT per valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestore colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Cambia stato di visibilità delle colonne nascoste | Confronta intervalli & colonne...
Funzionalità in primo piano: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestore di cartelle di lavoro & fogli | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email per elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...)...
Top15 strumenti:12 strumenti Testo (Aggiungi testo, Elimina Caratteri Specifici, ...) |50+ tipi di grafico (Diagramma di Gantt, ...) |40+ formule pratiche (Calcola letà in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti Unione & Dividi (Unione avanzata righe, Dividi celle, ...) | ... e altro ancora
Usa Kutools nella lingua che preferisci – supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre lingue!

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.

Excel Word Outlook Tabs PowerPoint
  • 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