Skip to main content

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

Come numerare automaticamente le righe se la cella adiacente non è vuota in Excel?

Author Xiaoyang Last modified
autonumber rows if adjacent cell not blank

In Excel, utilizzare il quadratino di riempimento per creare manualmente una serie di numeri è un modo comune per generare numeri seriali o indici per le liste. Tuttavia, spesso ci si trova in situazioni in cui si desidera numerare le righe solo se una specifica cella adiacente contiene dati. Ad esempio, potresti voler generare automaticamente i numeri di riga in una lista, ma saltare la numerazione dove le celle di dati adiacenti sono vuote. Inoltre, potresti aspettarti che questi numeri si aggiornino istantaneamente quando i dati vengono inseriti o rimossi, fornendo sempre una sequenza aggiornata senza intervento manuale.

Numerare le righe se la cella adiacente non è vuota automaticamente con una formula

Numerare le righe se la cella adiacente non è vuota automaticamente con codice VBA


arrow blue right bubble Numerare le righe se la cella adiacente non è vuota automaticamente con una formula

Un modo efficiente per ottenere una numerazione dinamica delle righe basata sui valori delle celle adiacenti è utilizzare una formula di Excel. Con questo approccio, i numeri di riga verranno visualizzati solo quando la cella adiacente contiene un valore. Quando aggiungi o elimini dati in queste celle, la numerazione si aggiorna automaticamente di conseguenza. Ecco un metodo pratico che puoi utilizzare:

1. Seleziona la cella in cui desideri che inizi la numerazione (ad esempio, A2 se i tuoi dati iniziano in B2). Inserisci la seguente formula:

=IF(B2<>"",COUNTA($B$2:B2),"")
Suggerimento: Questa formula verifica se la cella B2 non è vuota. Se c'è un dato in B2, conta tutte le celle non vuote da B2 fino alla riga corrente, creando una sequenza continua per le righe che contengono valori. Se B2 è vuota, la formula restituisce un valore vuoto, lasciando la cella della sequenza vuota.

2. Successivamente, trascina il quadratino di riempimento verso il basso lungo i tuoi dati per applicare questa formula alle altre righe. La numerazione si regolerà automaticamente, visualizzando i numeri solo per le righe in cui sono presenti dati nella colonna B.

autonumber if not blank with formula

Nota: Questo metodo è particolarmente vantaggioso per le liste in cui possono essere inseriti, eliminati o modificati nuovi dati in qualsiasi momento, poiché la sequenza rimarrà sempre accurata senza bisogno di rinumerazione o ricalcolo manuale. Tuttavia, tieni presente che se ci sono celle vuote come parte dei tuoi dati (ad esempio, spazi intenzionali), quelle righe rimarranno non numerate.

Se riscontri problemi in cui i numeri non si aggiornano come previsto, conferma che la formula sia stata copiata in tutte le righe pertinenti e che non ci siano celle unite o convalidazioni di dati che interferiscono con il tuo intervallo. Ricorda, le formule dipendono da riferimenti accurati e possono essere interrotte da cambiamenti strutturali al foglio di lavoro.


arrow blue right bubble Numerare le righe se la cella adiacente non è vuota automaticamente con codice VBA

Per utenti più avanzati, o nei casi in cui preferisci non applicare formule in tutto il foglio di lavoro, oppure hai bisogno che la numerazione si aggiorni anche quando incollate dati, rimuovete blocchi o fate modifiche frequenti, una macro VBA offre un'alternativa convincente. Utilizzando VBA, puoi aggiornare automaticamente i numeri di riga in una colonna ogni volta che viene modificata la cella adiacente, senza la necessità di formule. Questo è ideale per moduli di inserimento dati, registri di importazione o elenchi di attività con frequenti cambiamenti di layout.

1. Premi Alt + F11 per aprire la finestra dell'editor di Visual Basic for Applications. Nell'Esplora Progetti, individua la tua cartella di lavoro, quindi fai doppio clic sul foglio di lavoro pertinente (ad esempio, “Foglio1”) sotto “Oggetti Microsoft Excel”.

2. Nella finestra del codice che appare, incolla il seguente codice. Questo esempio presuppone che tu voglia numerare le righe nella colonna A in base al fatto che la colonna B non sia vuota; puoi regolare i riferimenti per il tuo intervallo specifico, se necessario:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim chk As Range
    Set chk = Intersect(Target, Me.Columns("B"))
    If chk Is Nothing Then Exit Sub
    
    Application.EnableEvents = False
    Call RenumberNonBlank(Me, "B", "A", 2)
    Application.EnableEvents = True
End Sub
Sub RenumberNonBlank(ws As Worksheet, _
                    keyCol As String, _
                    numCol As String, _
                    firstDataRow As Long)
    Dim lastRow As Long
    Dim r As Long
    Dim seq As Long
    lastRow = ws.Cells(ws.Rows.Count, keyCol).End(xlUp).Row
    seq = 1
    For r = firstDataRow To lastRow
        With ws
            If Trim(.Cells(r, keyCol).Value) <> "" Then
                .Cells(r, numCol).Value = seq
                seq = seq + 1
            Else
                .Cells(r, numCol).ClearContents
            End If
        End With
    Next r
End Sub

3. Salva e chiudi l'editor VBA. Ora, ogni volta che aggiungi, modifichi o cancelli contenuti nella colonna B, la colonna A verrà rinumerata immediatamente, riflettendo la presenza (o assenza) di dati. La sequenza si sposterà verso l'alto o verso il basso quando aggiungi o rimuovi voci nella colonna B.

Note e precauzioni: Questa macro deve essere posizionata specificamente nella finestra del codice del foglio di lavoro desiderato (non in un modulo o ThisWorkbook) affinché risponda alle modifiche delle celle. Assicurati inoltre che le macro siano abilitate nelle impostazioni di Excel affinché il codice funzioni. Se il tuo "intervallo dati" si sposta su colonne diverse da A e B, aggiorna i riferimenti Set chk = Intersect(Target, Me.Columns("B")) e Call RenumberNonBlank(Me, "B", "A", 2) di conseguenza.

Risoluzione dei problemi: Se la numerazione non si aggiorna, verifica di aver modificato il foglio di lavoro corretto e che il codice sia posizionato nella finestra del codice del foglio di lavoro appropriato. Inoltre, assicurati di aver salvato la cartella di lavoro come file abilitato per le macro (.xlsm). In caso di errori imprevisti, ricontrolla di non aver alterato la struttura del tuo foglio di lavoro, come celle unite o dati nelle righe di intestazione.


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