Come ordinare automaticamente una colonna in base ai valori in Excel?
Quando si lavora con elenchi o tabelle in Excel, è comune voler mantenere i dati sempre ordinati, soprattutto quando vengono aggiunte nuove informazioni. Immagini, ad esempio, di gestire una tabella acquisti come quella illustrata nello screenshot seguente, in cui i prezzi degli articoli vengono regolarmente aggiornati o nuovi elementi inseriti. In questi casi, potrebbe notare che Excel non riordina automaticamente la colonna Prezzo all’inserimento di nuovi valori: i dati restano nella loro posizione originale finché non si avvia manualmente un nuovo ordinamento. Questo può facilmente causare confusione o errori, specialmente quando è necessario analizzare o presentare rapidamente informazioni sempre aggiornate e ordinate. Sapere come ordinare automaticamente una colonna in base al suo valore non appena si verificano modifiche o aggiunte può quindi farle risparmiare molto tempo e garantire l’accuratezza del suo flusso di lavoro.
Questa guida offre metodi pratici per ordinare automaticamente una colonna specifica in base ai valori non appena aggiorna il foglio di lavoro. Di seguito troverà sia una soluzione basata su macro VBA sia una soluzione con formule dinamiche, disponibile nelle versioni più recenti di Excel. Ogni metodo è pensato per scenari precisi e include dettagli sull’impostazione, suggerimenti applicativi, spiegazioni sui parametri e indicazioni per la risoluzione dei problemi, così da poter implementare con efficacia l’approccio più adatto alle Sue esigenze.
Ordinamento automatico di una colonna per valore con VBA
Ordinamento automatico di una colonna per valore con formula Excel (array dinamici)

Ordinamento automatico di una colonna per valore con VBA
Questa macro VBA ordina automaticamente tutti i dati in una colonna specifica ogni volta che si inserisce un nuovo valore o si modifica un dato esistente all’interno di quella colonna nel foglio di lavoro. È la soluzione ideale se utilizzi una versione precedente di Excel o desideri mantenere i dati di una tabella sempre ordinati direttamente al loro posto, senza ricorrere a colonne aggiuntive.
Scenari tipici in cui questo metodo è utile:
- Quando si desidera che i dati nella propria tabella o colonna si aggiornino automaticamente in base all’ordine più recente, senza dover eseguire manualmente l’ordinamento dopo ogni modifica.
- Se si gestiscono fogli di lavoro collaborativi in cui diversi utenti aggiornano frequentemente lo stesso intervallo di dati e desiderano mantenere la visualizzazione costantemente ordinata.
Cose da sapere prima di iniziare:
- Le soluzioni VBA apportano modifiche dirette al foglio di lavoro. Ti consigliamo di salvare il file prima di procedere.
- La macro funzionerà solo se le macro sono abilitate nel tuo ambiente Excel.
- Le macro saranno associate al foglio di lavoro specifico e potrebbero richiedere alcuni adattamenti qualora la struttura della tabella dovesse cambiare.
1. Fare clic con il pulsante destro del mouse sul nome del foglio di lavoro corrente nella barra delle schede e selezionare «Visualizza codice» dal menu contestuale.
2. Nella finestra «Microsoft Visual Basic, Applications Edition» aperta, incolla il seguente codice macro VBA nella finestra del codice corrispondente al foglio di lavoro desiderato.
VBA: Ordinamento automatico di una colonna in Excel
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("B:B")) Is Nothing Then
Range("B1").Sort Key1:=Range("B2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End If
End Sub Nota:
1) Nel codice VBA riportato sopra, «B:B» si riferisce alla colonna B, "B1" è la cella nella prima riga della colonna B e "B2" è la cella subito sotto l’intestazione. Puoi modificare questi riferimenti per adattarli alla colonna che desideri ordinare automaticamente nei tuoi dati.
2) Il parametro Header:=xlYes nella quinta riga indica che il tuo intervallo di dati include una riga di intestazione, assicurando che questa non venga inclusa nell’ordinamento. Se il tuo intervallo di dati non contiene un’intestazione, modifica questo valore in Header:=xlNo e aggiorna anche Key1:=Range("B2") in Key1:=Range("B1").
3) La macro viene attivata ogni volta che il valore di una cella cambia all’interno della colonna specificata.
3. Torna al foglio di lavoro. Ora, ogni volta che aggiungi un nuovo numero nella colonna Prezzo o aggiorni un valore esistente, la colonna verrà immediatamente riordinata in ordine crescente.
Suggerimento: Inserisci sempre i nuovi valori subito dopo l’ultima cella utilizzata nella colonna. Se ci sono celle vuote tra i dati, l’ordinamento non funzionerà come previsto.
Ordinamento automatico di una colonna per valore con formula Excel (array dinamici)
Per gli utenti di Excel 365 o Excel 2021 e versioni successive, le funzioni per array dinamici come SORT e SORTBY offrono un modo efficiente e senza codice per generare un elenco ordinato che si aggiorna automaticamente non appena i dati cambiano. Questa soluzione non richiede VBA, è supportata nativamente nelle versioni recenti di Excel ed è ideale quando si desidera lasciare invariati i dati originali e lavorare invece con una copia ordinata in un intervallo o in un foglio separato.
Quando è opportuno utilizzare questo approccio?
- Se serve una versione ordinata in tempo reale dei propri dati in una posizione diversa — ad esempio per report, dashboard o stampe — senza modificare i dati originali.
- Quando si utilizzano Excel 365, Excel 2021 o versioni successive che supportano gli array dinamici.
- Questo metodo visualizza i dati ordinati in una nuova area e non riordina i dati originali. Se ha bisogno di un riordino in loco, consideri la soluzione VBA descritta sopra.
- Gli array dinamici non sono disponibili in Excel 2019 e nelle versioni precedenti.
1. Decida dove visualizzare l’elenco ordinato. Ad esempio, se la tabella originale si trova nell’intervallo A1:C10 (con le intestazioni nella riga 1) e si desidera mostrare l’elenco ordinato a partire dalla cella E1, selezioni la cella E1.
2. Inserisca la seguente formula nella cella E1:
=SORT(A2:C10,2,1) Nella formula sopra indicata:
- A2:C10 è il Suo intervallo dati originale (escluse le intestazioni). Modifichi questo intervallo in base al Suo intervallo dati.
- 2 indica che si sta ordinando in base alla seconda colonna — ad esempio, se il prezzo si trova nella seconda colonna del Seleziona intervallo.
- 1 specifica l’ordine crescente. Utilizzi -1 se desidera l’ordine decrescente.
3. Premere Invio. La formula genererà una copia dinamica e ordinata dei dati. Se si aggiungono, rimuovono o modificano elementi nell’intervallo originale (ad esempio, nuovi prezzi o prodotti), l’elenco ordinato si aggiornerà automaticamente — senza alcun intervento manuale richiesto.
Note:
- Se vengono aggiunti nuovi dati al di sotto dell’area originale, il riferimento nella formula (ad esempio,)
A2:C10) va esteso di conseguenza. - Per dati in continuo cambiamento come Intervallo, consideri l’utilizzo delle tabelle Excel (Inserisci > Tabella) e utilizzi il nome della tabella nella formula SORT per aggiornamenti automatici dell’intervallo.
- Se utilizzi una singola colonna (ad esempio, B2:B10), la formula si semplifica in
=SORT(B2:B10;1;1).
Demo: Ordinamento automatico di una colonna per valore con VBA in Excel
Ordina facilmente per frequenza di occorrenze in Excel
Kutools per Excel offre la funzione «Ordinamento avanzato», che consente di ordinare i dati in modo semplice secondo vari criteri, come Lunghezza testo, Cognome, Valore assoluto, frequenza e altri.

Kutools per Excel– Potenzia Excel con oltre 300 strumenti essenziali, rendendo il tuo lavoro più veloce e semplice, e sfrutta le funzionalità basate sull’IA per un’elaborazione dati più intelligente e una maggiore produttività.Scaricalo ora
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