Come spostare un’intera riga in fondo al foglio di lavoro corrente in base al valore di una cella in Excel?
In Excel, capita spesso di dover riorganizzare i dati in base allo stato o al valore contenuto in una determinata colonna. Ad esempio, dopo aver monitorato l’avanzamento delle attività, potresti voler spostare automaticamente in fondo al foglio tutte le righe con lo stato “Done”, lasciando in alto quelle attive o in corso. Spostare automaticamente un’intera riga in base al valore di una cella rende il foglio più semplice da gestire, mette in evidenza le priorità e ti permette di concentrarti in modo efficiente sugli elementi ancora da completare.
Esistono diversi modi per ottenere questo risultato in Excel, tra cui l’uso di codice VBA per l’automazione o l’impiego di formule combinate con la funzionalità di ordinamento integrata. Ogni approccio offre vantaggi specifici ed è ideale per scenari diversi. Di seguito trovi soluzioni dettagliate, passo dopo passo, per spostare un’intera riga in fondo al foglio di lavoro attivo in base a un determinato valore della cella.
- Sposta Riga intera in fondo a Foglio di lavoro corrente in base al valore della cella con codice VBA
- Sposta Riga intera in fondo utilizzando formule Excel e ordinamento
Sposta Riga intera in fondo a Foglio di lavoro corrente in base al valore della cella con codice VBA
Immagina di avere una tabella in cui la colonna C indica uno stato, ad esempio «Done», e di voler spostare immediatamente in fondo all’intervallo dati tutte le righe con «Done» nella colonna C. Questa soluzione VBA è ideale se cerchi un processo semi-automatico e ripetibile, capace di gestire modifiche dinamiche ai dati senza dover ricorrere ogni volta all’ordinamento manuale.

1. Premere contemporaneamente Alt + F11 per aprire la finestra di Microsoft Visual Basic for Applications.
2. Nella finestra di Microsoft Visual Basic for Applications, fai clic su Inserisci > Modulo. Poi copia e incolla il seguente codice VBA nella finestra.
Codice VBA: Sposta Riga intera in fondo a Foglio di lavoro corrente in base al valore della cella
Sub MoveToEnd()
Dim xRg As Range
Dim xTxt As String
Dim xCell As Range
Dim xEndRow As Long
Dim I As Long
On Error Resume Next
If ActiveWindow.RangeSelection.Count > 1 Then
xTxt = ActiveWindow.RangeSelection.AddressLocal
Else
xTxt = ActiveSheet.UsedRange.AddressLocal
End If
lOne:
Set xRg = Application.InputBox("Select range:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
GoTo lOne
End If
xEndRow = xRg.Rows.Count + xRg.Row
Application.ScreenUpdating = False
For I = xRg.Rows.Count To 1 Step -1
If xRg.Cells(I) = "Done" Then
xRg.Cells(I).EntireRow.Cut
Rows(xEndRow).Insert Shift:=xlDown
End If
Next
Application.ScreenUpdating = True
End Sub Nota: in questo codice VBA, il valore specifico a cui si fa riferimento è “Done”. Puoi modificarlo direttamente nel codice per adattarlo al valore che deve attivare lo spostamento della riga (ad esempio, sostituendolo con «Completato» o qualsiasi altro stato coerente con il tuo flusso di lavoro). Assicurati che il valore corrisponda esattamente — inclusi maiuscole, minuscole e spazi — oppure valuta di modificare il codice per effettuare un confronto non sensibile alle maiuscole, se necessario.
3. Premere il tasto F5 oppure fare clic sul pulsante Esegui. Nella finestra di dialogo Kutools per Excel visualizzata, selezionare l’intervallo di colonne in cui potrebbe comparire il valore desiderato, quindi fare clic sul pulsante OK.

Dopo la conferma, il codice individuerà automaticamente le righe con il valore “Done” nella colonna selezionata e le sposterà in fondo al relativo intervallo dati—riordinando istantaneamente e risparmiandoti il tempo di un’ordinazione manuale o dello spostamento delle righe a mano.

Suggerimenti:
- Se sono presenti intestazioni, assicurati di non includerle nella selezione quando richiesto, per evitare di spostare la riga di intestazione.
- Questo script VBA si applica esclusivamente al foglio di lavoro attualmente attivo. Per eseguire l'operazione su più fogli, ripeti il processo per ciascuno di essi.
- Se i dati contengono formule o celle collegate, lo spostamento delle righe potrebbe far cambiare i riferimenti. Controlla attentamente il foglio di lavoro dopo aver eseguito la macro per assicurarti che i dati siano rimasti integri.
Questo metodo VBA si rivela particolarmente efficace quando è necessario elaborare regolarmente un elevato numero di righe, soprattutto nei casi in cui l’ordinamento manuale risulta inefficiente. Tuttavia, se preferisci una soluzione senza macro o desideri lavorare direttamente con formule e strumenti standard di Excel, ti consigliamo di valutare l’approccio successivo.

Sblocca la magia di Excel con KUTOOLS AI
- Esecuzione intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici, il tutto con comandi semplici e intuitivi.
- Formule personalizzate: crea formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA in modo semplice e immediato.
- Interpretazione delle formule: Comprendi con facilità anche le formule più complesse.
- Traduzione del testo: Superate le barriere linguistiche direttamente nei vostri fogli di calcolo.
Sposta Riga intera in fondo utilizzando formule Excel e ordinamento
Per gli utenti che preferiscono evitare le macro o cercano un approccio più trasparente basato su formule per gestire i propri dati, è possibile ottenere lo stesso risultato utilizzando colonne di supporto e la funzionalità di ordinamento integrata di Excel. Questo metodo si rivela particolarmente efficace negli ambienti collaborativi o nei file condivisi con altri utenti che potrebbero avere le macro disabilitate per motivi di sicurezza.
1. Inserisci una nuova colonna di supporto a destra o a sinistra dei dati esistenti. Ad esempio, se le intestazioni si trovano nella riga 1, i valori iniziano dalla riga 2 e lo stato è nella colonna C, inserisci una nuova colonna D e chiamala «SortKey» o un nome simile.
2. Nella prima cella della colonna di supporto (esclusa l’intestazione, ad esempio D2), inserisci la seguente formula:
=IF(C2="Done",1,0) Questa formula assegna il valore 1 alle righe in cui la colonna C è «Done» e 0 a tutte le altre.
3. Premere Invio per confermare la formula, quindi copiarla in tutte le righe dei dati. Basta trascinare il quadratino di riempimento da D2 fino all’ultima riga dei dati oppure fare doppio clic sul quadratino per un riempimento automatico, se la colonna adiacente è popolata.
4. Seleziona una qualsiasi cella del tuo intervallo dati, quindi vai alla scheda Dati nella barra multifunzione di Excel e fai clic su Ordina.
5. Nella finestra di dialogo Ordina, seleziona la colonna di supporto («SortKey») dal menu a discesa «Ordina per» e imposta l’ordine su Dal più piccolo al più grande. In questo modo, tutte le righe contrassegnate con «Done» (valore 1) verranno spostate in fondo, mentre quelle non completate (valore 0) resteranno in alto.
6. Fare clic su OKper applicare l’ordinamento. I dati verranno ora riorganizzati in modo che tutte le voci completate o contrassegnate come «Done» appaiano in fondo alla tabella.
Spiegazione dei parametri e suggerimenti:
- È possibile sostituire «Done» nella formula con qualsiasi altro indicatore di stato rilevante per il proprio foglio (ad esempio, «Completato», «Inattivo»). Assicurarsi che l’ortografia corrisponda esattamente ai dati presenti nel foglio.
- Se si desidera spostare righe con valori multipli (ad esempio, sia «Done» che «Canceled»), utilizzare una formula come:
=IF(OR(C2="Done",C2="Canceled"),1,0) - Per invertire l’effetto (ovvero posizionare in alto le righe con «Done»), ordina in Dal più grande al più piccolo oppure scambia 0 e 1 nella formula.
Questo approccio non elimina né nasconde alcuna riga, preservando perfettamente la struttura dei dati. È la scelta ideale per collaborare con altri utenti, garantire la compatibilitibilità tra diverse versioni di Excel ed evitare potenziali problemi legati ai file con macro abilitate.
Articoli correlati:
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 oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi