Come spostare un'intera riga in fondo al foglio attivo in base al valore della cella in Excel?
In Excel, potrebbe essere necessario riorganizzare i dati frequentemente in base allo stato o al valore di una colonna specifica. Ad esempio, dopo aver tracciato il progresso delle attività, si potrebbe voler spostare tutte le righe con lo stato "Fatto" in fondo al foglio di lavoro, mantenendo le attività attive o in corso in cima. Lo spostamento automatico di intere righe in base al valore di una cella può rendere il foglio più facile da gestire, evidenziare le priorità e aiutarti a concentrarti efficacemente sugli elementi incompleti.
Esistono diversi modi per raggiungere questo obiettivo in Excel, tra cui l'uso del codice VBA per l'automazione o l'utilizzo di formule e la funzionalità di ordinamento integrata di Excel. Ogni approccio ha i propri punti di forza ed è adatto a scenari diversi. Di seguito sono riportate soluzioni passo-passo per aiutarti a spostare intere righe in fondo al tuo foglio di lavoro attivo in base a un determinato valore della cella.
- Sposta l'intera riga in fondo al foglio attivo in base al valore della cella con il codice VBA
- Sposta l'intera riga in fondo utilizzando formule di Excel e ordinamento
Sposta l'intera riga in fondo al foglio attivo in base al valore della cella con il codice VBA
Supponiamo di avere una tabella in cui la colonna C contiene uno stato, come "Fatto", e si desidera che qualsiasi riga con "Fatto" nella colonna C venga immediatamente spostata alla fine dell'intervallo dati. Questa soluzione VBA è particolarmente utile se si vuole un processo ripetibile e semi-automatico che gestisca cambiamenti dinamici nei dati senza dover ricorrere 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, cliccare su Inserisci > Modulo. Quindi copiare e incollare il seguente codice VBA nella finestra.
Codice VBA: Sposta l'intera riga in fondo al foglio attivo 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 è “Fatto”. È possibile modificare questo valore nel codice per farlo corrispondere al valore che desideri attivi lo spostamento della riga (ad esempio, puoi cambiarlo in "Completato" o in qualsiasi altro stato che si adatta al tuo flusso di lavoro). Assicurati che il valore corrisponda esattamente, inclusi maiuscole/minuscole e spaziature, oppure considera di adattare il codice per una corrispondenza non sensibile alle maiuscole se necessario.
3. Premere il tasto F5 o fare clic sul pulsante Esegui per eseguire il codice. Nella finestra di dialogo Kutools per Excel che appare, selezionare l'intervallo di colonne in cui potrebbe apparire il valore target, quindi fare clic sul pulsante OK.
Dopo aver confermato, il codice cercherà automaticamente le righe con il valore “Fatto” nella colonna selezionata e le sposterà in fondo all'intervallo dati. Questo riordino avviene istantaneamente, risparmiando tempo evitando l'ordinamento manuale o lo spostamento delle righe.
Consigli:
- Se hai intestazioni, assicurati di non includerle nella selezione quando richiesto, per evitare di spostare la riga dell'intestazione.
- Questo script VBA si applica solo al foglio di lavoro attualmente attivo. Se devi eseguire questa operazione su più fogli, ripeti il processo per ogni foglio.
- Se i tuoi dati contengono formule o celle collegate, lo spostamento delle righe potrebbe causare lo spostamento dei riferimenti. Controlla attentamente il tuo foglio di lavoro dopo aver eseguito la macro per garantire l'integrità dei dati.
Questo metodo VBA eccelle in situazioni in cui è necessario elaborare regolarmente un gran numero di righe, soprattutto quando l'ordinamento manuale è inefficiente. Tuttavia, se hai bisogno di una soluzione che non implichi l'uso di macro, o se preferisci lavorare direttamente con formule e strumenti standard di Excel, considera il prossimo approccio.

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.
Sposta l'intera riga in fondo utilizzando formule di Excel e ordinamento
Per gli utenti che preferiscono non usare macro o vogliono un modo più trasparente basato su formule per gestire i loro dati, è possibile ottenere lo stesso effetto utilizzando colonne di supporto e la funzionalità di ordinamento integrata di Excel. Questo metodo funziona bene in ambienti collaborativi o file che devono essere condivisi con altri che potrebbero avere impostazioni di sicurezza relative alle macro abilitate.
1. Inserire una nuova colonna di supporto a destra o sinistra dei tuoi dati esistenti. Per illustrazione, se le intestazioni dei dati sono nella riga 1 e i valori iniziano dalla riga 2, e lo stato è nella colonna C, inserisci una nuova colonna D e denominala "ChiaveOrdinamento" o simile.
2. Nella prima cella della colonna di supporto (escludendo l'intestazione, ad esempio D2), inserisci la seguente formula:
=IF(C2="Done",1,0)
Questa formula assegnerà 1 alle righe in cui la colonna C è "Fatto" e 0 a tutte le altre righe.
3. Premere Invio per confermare la formula, quindi copiarla lungo tutte le righe dei dati. Trascina semplicemente la maniglia di riempimento da D2 fino all'ultima riga dei dati, oppure fai doppio clic sulla maniglia di riempimento per un riempimento automatico se la colonna adiacente è popolata.
4. Selezionare una cella qualsiasi nell'intervallo dei dati, quindi dalla barra multifunzione di Excel vai alla scheda Dati e fai clic su Ordina.
5. Nella finestra di dialogo Ordina, seleziona la colonna di supporto ("ChiaveOrdinamento") nel menu a discesa "Ordina per", e scegli l'ordine Dal più piccolo al più grande. Questo terrà tutte le righe con "Fatto" (contrassegnate con 1) in fondo, e le altre (contrassegnate con 0) in cima.
6. Fare clic su OK per applicare l'ordinamento. I tuoi dati verranno ora riorganizzati in modo che tutte le voci completate o "Fatto" appaiano in fondo alla tabella.
Spiegazioni dei parametri e consigli:
- È possibile cambiare "Fatto" nella formula con qualsiasi altro indicatore di stato rilevante per il tuo foglio (ad esempio, "Completato", "Inattivo"). Assicurati che l'ortografia corrisponda esattamente ai tuoi dati.
- Se si desidera spostare righe con più valori (ad esempio, sia "Fatto" che "Annullato"), utilizzare una formula come:
=IF(OR(C2="Done",C2="Canceled"),1,0)
- Per invertire l'effetto (cioè, le righe "Fatto" in cima), ordinare in ordine Dal più grande al più piccolo o scambiare 0 e 1 nella formula.
Questo approccio non elimina né nasconde alcuna riga e mantiene intatta la struttura dei dati. È ideale per collaborare con altri, garantendo la compatibilità tra diverse versioni di Excel ed evitando potenziali problemi con i file abilitati per le macro.
Articoli correlati:
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