Ordinamento in Excel: ordina i dati per testo, data, numero o colore
Ordinare i dati in Excel è un'operazione comune e semplice che consente di riorganizzare i dati in base al tipo di ordinamento scelto. Normalmente, con la funzione Ordina integrata, puoi ordinare numeri, stringhe di testo, date e orari su una o più colonne; puoi anche ordinare i dati in base a un elenco personalizzato creato da te, oppure in base alla formattazione delle celle (come colore del carattere, colore di sfondo o icona) in modo rapido e semplice.
Oltre a questi ordinamenti semplici, nel lavoro quotidiano potresti aver bisogno di ordinamenti più utili e complessi. In questo tutorial verranno presentati diversi tipi di ordinamento per risolvere i tuoi problemi in Excel.
Indice dei contenuti:
1. Accesso alle opzioni di ordinamento in Excel
- 1.1 Pulsanti di ordinamento nella barra multifunzione
- 1.2 Finestra di dialogo Ordinamento
- 1.3 Opzioni di ordinamento nel menu Filtro
- 1.4 Opzioni di ordinamento con il tasto destro
2. Utilizzi di base dell'ordinamento
- 2.1 Ordina i dati per testi, numeri o date
- 2.2 Ordina i dati per colore cella, colore carattere, icona cella
- 2.3 Ordina i dati per più colonne
- 2.4 Ordina i dati in base a un elenco personalizzato
- 2.5 Ordina i dati da sinistra a destra (ordinamento orizzontale)
- 2.6 Ordina i dati rispettando le maiuscole/minuscole
3. Utilizzi avanzati dell'ordinamento
4. Ordina i dati automaticamente durante l'inserimento o la modifica
- 4.1 Ordina automaticamente i valori numerici in una colonna con le formule
- 4.2 Ordina automaticamente i valori di testo in una colonna con le formule
- 4.3 Ordina automaticamente il mix di valori numerici e di testo in una colonna con codice VBA
- 5.3 Ordina le schede dei fogli di lavoro in ordine alfabetico o per colore della scheda in Excel
- Ordina le schede dei fogli di lavoro in ordine alfabetico con codice VBA
- Ordina le schede dei fogli di lavoro in ordine alfabetico/alfanumerico con una funzione avanzata
- Ordina le schede dei fogli di lavoro in base al colore della scheda con codice VBA
- Ordina le schede dei fogli di lavoro in base al colore della scheda con una funzione avanzata
Accesso alle opzioni di ordinamento in Excel
Excel offre diversi modi per accedere alla funzione Ordina e alle sue opzioni.
1.1 Pulsanti di ordinamento nella barra multifunzione
Il modo più rapido per applicare la funzione di ordinamento è utilizzare i pulsanti di ordinamento presenti nella barra multifunzione.
Fai clic su una qualsiasi cella di una colonna con valori da ordinare, quindi vai alla scheda Data, nella sezione Sort & Filter, fai clic sul pulsante Sort A to Z o Sort Z to A per ordinare i dati in ordine alfabetico crescente o decrescente. Vedi screenshot:
Nota: Se ci sono righe vuote nell'area dati, dopo aver applicato questi pulsanti, solo l'area dati della cella selezionata sopra o sotto le righe vuote potrà essere ordinata correttamente.
1.2 Finestra di dialogo Ordinamento
Nel gruppo Sort & Filter della scheda Data, è presente un altro pulsante Sort, vedi screenshot:
Dopo aver cliccato su questo pulsante Sort, verrà visualizzata una finestra di dialogo Sort come mostrato nello screenshot qui sotto:
Poi, nella finestra di dialogo Sort, puoi scegliere le regole corrispondenti per ordinare i dati secondo le tue esigenze.
Suggerimento: puoi anche utilizzare le scorciatoie da tastiera per aprire questa finestra di dialogo Sort, premi in sequenza i tasti Alt + A + S + S sulla tastiera.
1.3 Opzioni di ordinamento nel menu Filtro
Se hai applicato i filtri all'area dati, puoi trovare le opzioni di ordinamento insieme a quelle del filtro. Facendo clic sull'icona del filtro in una qualsiasi colonna, vedrai le opzioni di ordinamento nell'elenco espanso come mostrato nello screenshot seguente:
Nota: Queste opzioni di ordinamento cambiano in base ai dati della colonna: se la colonna contiene testo, verranno visualizzate Sort A to Z e Sort Z to A; se contiene numeri, verranno mostrate Sort Smallest to Largest e Sort Largest to Smallest; se contiene date, verranno mostrate Sort Oldest to Newest e Sort Newest to Oldest.
1.4 Opzioni di ordinamento con il tasto destro
In Excel puoi anche utilizzare le opzioni di ordinamento dal menu contestuale per ordinare rapidamente i dati: fai clic con il tasto destro su una cella di una colonna da ordinare e, nel menu che appare, troverai sei opzioni di ordinamento disponibili. Seleziona quella di cui hai bisogno, vedi screenshot:
Utilizzi di base dell'ordinamento
La funzione Ordina di Excel ti permette di eseguire ordinamenti semplici, come ordinare numeri, stringhe di testo o date in ordine crescente o decrescente, oppure ordinare le celle in base al colore del carattere o dello sfondo. In questa sezione vedremo alcuni utilizzi di base di questa funzione.
2.1 Ordina i dati per testi, numeri o date
Per ordinare un intervallo di dati in base a testi, numeri o date in ordine crescente o decrescente, segui questi passaggi:
1. Seleziona l'area dati che desideri ordinare, quindi fai clic su Data > Sort, vedi screenshot:
2. Nella finestra di dialogo Sort, esegui le seguenti operazioni:
- Nella sezione Column, seleziona il nome della colonna su cui vuoi basare l'ordinamento;
- Nella sezione Sort On, seleziona l'opzione Cell Values;
- Nella sezione Order, specifica l'ordine di ordinamento. (Per ordinare stringhe di testo, seleziona A to Z o Z to A; per ordinare numeri, scegli Smallest to Largest o Largest to Smallest; per ordinare celle con date, seleziona Oldest to Newest o Newest to Oldest.)
- Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deseleziona questa opzione.
3. Poi, fai clic su OK: i dati selezionati verranno ordinati in base alla colonna specificata.
2.2 Ordina i dati per colore cella, colore carattere, icona cella
Se vuoi ordinare l'area dati in base al colore della cella, al colore del carattere o all'icona di formattazione condizionale, la funzione Ordina può risolvere rapidamente questo compito.
Supponiamo di avere un intervallo di dati formattato con colori di cella, come mostrato nello screenshot qui sotto. Se desideri riordinare i dati in base al colore della cella, ad esempio posizionando le righe rosse in alto, seguite da quelle gialle e poi blu, per ordinare le righe per colore cella procedi così:
1. Seleziona l'area dati che vuoi ordinare in base al colore della cella, quindi fai clic su Data > Sort per aprire la finestra di dialogo Sort.
2. Nella finestra di dialogo Sort, specifica le seguenti operazioni:
2.1) Imposta il primo colore di cella in alto come segue:
- Nella sezione Column, seleziona Name o un'altra colonna dove sono presenti le celle colorate. In questo esempio, ho celle colorate in tutte le colonne, quindi puoi scegliere qualsiasi nome di colonna;
- Nella sezione Sort On, seleziona l'opzione Cell Color;
- Nella sezione Order, scegli il colore di cella che vuoi posizionare in alto o in basso;
2.2) Poi, fai clic sul pulsante Add Level per aggiungere la seconda e le altre regole, ripeti i passaggi precedenti per impostare gli altri colori di cella.
- Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Dopo aver completato le impostazioni, fai clic su OK: l'area dati verrà ordinata in base al colore di cella specificato, vedi screenshot:
Suggerimenti: Seguendo i passaggi sopra, puoi anche ordinare i dati in base al colore del carattere o all'icona della cella scegliendo Font Color oppure Conditional Formatting Icon nella finestra di dialogo Sort.
2.3 Ordina i dati per più colonne
Se hai un grande set di dati come mostrato nello screenshot qui sotto e desideri eseguire un ordinamento multilivello per leggere meglio i dati, ad esempio ordinando prima per la colonna Region, poi per State e infine per Sales, ecco come puoi farlo in Excel:
Per ordinare i dati su più colonne, segui questi passaggi:
1. Seleziona l'intervallo di dati che vuoi ordinare, quindi fai clic su Data > Sort per aprire la finestra di dialogo Sort.
2. Nella finestra di dialogo Sort, fai clic due volte su Add Level poiché ci sono tre colonne da utilizzare per l'ordinamento. Vedrai così due livelli Then by aggiunti all'elenco:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Dalle liste a discesa Sort by e Then by, seleziona i nomi delle colonne su cui vuoi basare l'ordinamento, quindi seleziona Cell Values nella sezione Sort On per ogni colonna scelta e infine scegli l'ordine di ordinamento desiderato.
4. Poi, fai clic su OK e otterrai il risultato dell'ordinamento come mostrato nello screenshot seguente:
2.4 Ordina i dati in base a un elenco personalizzato
Oltre all'ordinamento alfabetico o numerico, la funzione Ordina offre anche la possibilità di ordinare secondo un elenco personalizzato. Ad esempio, se vuoi ordinare l'intervallo di dati qui sotto per Stato - Non iniziato, In corso, Completato, puoi farlo seguendo questi passaggi.
1. Seleziona l'area dati che vuoi ordinare, poi fai clic su Data > Sort per aprire la finestra di dialogo Sort.
2. Nella finestra di dialogo Sort, seleziona la colonna da ordinare nella sezione Column, poi scegli Cell Values nella sezione Sort On, nella sezione Order fai clic su Custom List, vedi screenshot:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Si aprirà una finestra Custom Lists, esegui le seguenti operazioni:
- Fai clic su NEW LIST nella finestra Custom lists;
- Inserisci le stringhe di testo nell'ordine desiderato nella casella List entries; (quando inserisci i testi, premi Invio per separare le voci.)
- Infine, fai clic su Add: il nuovo elenco verrà aggiunto immediatamente nella finestra Custom lists.
4. Poi, fai clic su OK per tornare alla finestra di dialogo Sort. Il nuovo elenco personalizzato ora sarà visibile nel menu a discesa Order.
5. Infine, fai clic su OK per chiudere la finestra di dialogo: l'area dati verrà ordinata in base all'elenco personalizzato che hai definito, vedi screenshot:
2.5 Ordina i dati da sinistra a destra (ordinamento orizzontale)
Normalmente, i dati vengono ordinati verticalmente dall'alto verso il basso, ma a volte potresti voler ordinare i dati in base ai valori delle righe (da sinistra a destra). Ad esempio, nell'intervallo di dati qui sotto, voglio ordinarlo in base ai valori della riga Name.
In questo caso, la funzione Ordina offre una funzionalità integrata che consente di ordinare da sinistra a destra. Procedi così:
1. Seleziona l'area dati (escludendo le intestazioni) che vuoi ordinare, poi fai clic su Data > Sort per aprire la finestra di dialogo Sort.
2. Nella finestra di dialogo Sort che appare, fai clic su Options, poi nella finestra Sort Options seleziona Sort left to right, vedi screenshot:
3. Fai clic su OK per tornare alla finestra Sort, ora nella sezione Row specifica il numero di riga su cui vuoi basare l'ordinamento, poi seleziona Cell Values nella sezione Sort On e infine scegli l'ordine desiderato nella sezione Order, vedi screenshot:
4. Poi, fai clic su OK: i tuoi dati saranno ordinati come mostrato nello screenshot seguente:
2.6 Ordina i dati rispettando le maiuscole/minuscole
Generalmente, l'ordinamento dei dati non è sensibile alle maiuscole/minuscole come mostrato nel primo screenshot qui sotto. Ma se vuoi rendere l'ordinamento sensibile alle maiuscole/minuscole, come nel secondo screenshot, come puoi fare in Excel?
Per eseguire un ordinamento sensibile alle maiuscole/minuscole in Excel, procedi così:
1. Seleziona l'area dati che vuoi ordinare, poi fai clic su Data > Sort per aprire la finestra di dialogo Sort.
2. Nella finestra di dialogo Sort, nella sezione Column specifica il nome della colonna su cui vuoi basare l'ordinamento, poi seleziona Cell Values nella sezione Sort On e infine scegli l'ordine desiderato nella sezione Order, vedi screenshot:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Prosegui cliccando sul pulsante Options in questa finestra di dialogo e nella finestra Sort Options seleziona l'opzione Case sensitive, vedi screenshot:
4. Fai clic su OK > OK per chiudere le finestre di dialogo: i dati verranno ordinati in modo sensibile alle maiuscole/minuscole, con le minuscole prima delle maiuscole se il testo è identico. Vedi screenshot:
Utilizzi avanzati dell'ordinamento
Nel lavoro quotidiano potresti incontrare problemi di ordinamento più complessi, pratici o specifici: questa sezione tratta diversi tipi di attività di ordinamento in Excel.
3.1 Ordina i dati in base alla frequenza
Supponiamo di avere un elenco di dati in una colonna e ora vuoi ordinarla in ordine decrescente di frequenza di occorrenza, come mostrato nello screenshot qui sotto. Ecco due metodi per risolvere questo compito.
Ordina i dati in base alla frequenza con una colonna di supporto
In Excel non esiste un modo diretto per ordinare i dati in base al conteggio delle occorrenze: puoi creare una formula di supporto per ottenere la frequenza di ogni testo e poi ordinare per la colonna di supporto per ottenere il risultato desiderato.
1. Digita la formula qui sotto in una cella vuota accanto ai dati originali, ad esempio B2, quindi trascina il quadratino di riempimento verso il basso per applicare la formula alle altre celle, vedi screenshot:
=COUNTIF($A$2:$A$16,A2)
Nota: nella formula sopra, A2:A16 è l'elenco dei dati che vuoi ordinare per frequenza e A2 è il primo dato di questo elenco.
2. Poi, mantieni selezionate le celle con la formula e fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic sul pulsante Sort: ora la colonna originale sarà ordinata per frequenza come mostrato negli screenshot seguenti:
1. Dopo aver ottenuto il risultato, puoi eliminare la colonna di supporto se non ti serve più.
2. Se ci sono stringhe di testo che appaiono lo stesso numero di volte, lo stesso testo potrebbe non essere ordinato insieme. In questo caso, vai nella Sort finestra di dialogo, ordina prima per la colonna di supporto e poi per il testo come mostrato nello screenshot:
Ordina i dati in base alla frequenza con una funzione pratica
Se disponi di Kutools per Excel, con la funzione Ordinamento avanzato puoi ordinare i dati in base alla frequenza di occorrenza senza alcuna colonna di supporto, in modo rapido e semplice.
1. Seleziona l'elenco dati che vuoi ordinare, poi fai clic su Kutools Plus > Sort > Advanced Sort, vedi screenshot:
2. Nella finestra di dialogo Advanced Sort, seleziona la colonna da ordinare nella sezione Column, poi scegli Frequency dal menu a discesa Sort On e infine specifica l'ordine di ordinamento nella sezione Order, vedi screenshot:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Poi, fai clic su OK: l'elenco dati sarà ordinato per frequenza di occorrenza, vedi screenshot:
3.2 Ordina i dati in base alla lunghezza dei caratteri
Se hai un elenco di dati che contiene stringhe di testo di lunghezza diversa, potresti voler ordinare i dati per lunghezza dei caratteri per rendere la colonna più ordinata. In questa sezione vedremo come ordinare i dati in base al numero di caratteri.
Ordina i dati in base alla lunghezza dei caratteri con una colonna di supporto
Per ordinare una colonna in base alla lunghezza dei caratteri, usa la funzione LEN per calcolare il numero di caratteri di ogni cella e poi applica la funzione Ordina. Procedi così:
1. Inserisci questa formula =LEN(A2) in una cella vuota accanto ai dati originali, ad esempio B2, poi trascina il quadratino di riempimento verso il basso per applicare la formula, vedi screenshot:
2. Poi, mantieni selezionate le celle con la formula e fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort: le stringhe saranno ordinate per lunghezza dei caratteri. Puoi eliminare la colonna di supporto B se non ti serve più. Vedi screenshot:
Ordina i dati in base alla lunghezza dei caratteri con un'opzione semplice
Per ordinare rapidamente i dati in base al numero di caratteri, ti consiglio uno strumento pratico – Kutools per Excel: con la funzione Ordinamento avanzato puoi gestire facilmente questa attività.
1. Seleziona l'elenco dati che vuoi ordinare, poi fai clic su Kutools Plus > Sort > Advanced Sort.
2. Nella finestra di dialogo Advanced Sort, seleziona la colonna da ordinare nella sezione Column e scegli Text length dal menu a discesa Sort On, infine specifica l'ordine desiderato nella sezione Order. Vedi screenshot:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che My data has headers sia selezionato. Se i dati non hanno intestazioni, deselezionalo.
3. Poi, fai clic su OK: le stringhe di testo nell'elenco saranno ordinate per lunghezza dei caratteri come mostrato nello screenshot seguente:
3.3 Ordina i nomi completi per cognome
Quando si ordina un elenco di nomi completi, Excel utilizza il primo carattere del nome per l'ordinamento, ma se vuoi ordinare i dati per cognome? Ecco alcuni trucchi per ordinare facilmente i nomi completi per cognome in Excel.
Ordina i nomi completi per cognome con una colonna di supporto
Per ordinare i nomi completi in base al cognome, estrai prima i cognomi in una nuova colonna e poi usa la funzione Ordina per organizzare i nomi in ordine alfabetico per cognome. Procedi così:
1. Inserisci o copia la formula qui sotto in una cella vuota accanto ai dati originali, ad esempio B2, poi trascina il quadratino di riempimento verso il basso per applicare la formula, vedi screenshot:
=RIGHT(A2,LEN(A2)-FIND("@",SUBSTITUTE(A2," ","@",LEN(A2)-LEN(SUBSTITUTE(A2," ","")))))
2. Continua selezionando le celle con la formula e poi fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort: otterrai i nomi completi ordinati per cognome. Una volta fatto, puoi eliminare la colonna di supporto se non ti serve più. Vedi screenshot:
Ordina i nomi completi per cognome con un metodo rapido
Se non hai dimestichezza con le formule, per ordinare i nomi completi per cognome senza formule puoi utilizzare la funzione Ordinamento avanzato di Kutools per Excel.
1. Seleziona le celle con i nomi completi che vuoi ordinare e fai clic su Kutools Plus > Sort > Advanced Sort.
2. Nella finestra di dialogo Advanced Sort, seleziona la colonna da ordinare nella sezione Column e scegli Last name dal menu a discesa Sort On, infine specifica l'ordine desiderato nella sezione Order. Vedi screenshot:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Poi, fai clic su OK: la colonna dei nomi completi sarà ordinata per cognome.
3.4 Ordina gli indirizzi email per dominio
Se hai un elenco di indirizzi email da ordinare per dominio invece che per la prima lettera dell'indirizzo, come puoi fare in Excel? In questa sezione vedremo alcuni metodi rapidi per ordinare gli indirizzi email per dominio.
Ordina gli indirizzi email per dominio con una colonna di supporto
Puoi creare una formula per estrarre i domini email in un'altra colonna e poi ordinare gli indirizzi email originali in base alla nuova colonna dei domini.
1. Digita la formula seguente in una cella vuota accanto all'indirizzo email, in questo esempio la inserirò in C2, poi trascina il quadratino di riempimento sull'intervallo desiderato. Tutti i domini email verranno estratti dagli indirizzi, vedi screenshot:
=RIGHT(B2,LEN(B2)-FIND("@",B2))
2. Mantieni selezionate le celle con la formula e poi fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort per ordinare i dati per dominio email in ordine crescente o decrescente come specificato.
4. Dopo l'ordinamento, puoi eliminare la colonna di supporto se non ti serve più.
Ordina gli indirizzi email per dominio con pochi clic
Se disponi di Kutools per Excel, con la funzione Ordinamento avanzato puoi ordinare gli indirizzi email per dominio alfabeticamente in pochi clic.
1. Seleziona l'intero intervallo dati che vuoi ordinare, poi fai clic su Kutools Plus > Sort > Advanced Sort.
2. Nella finestra di dialogo Advanced Sort, seleziona la colonna da ordinare nella sezione Column e scegli Mail domain dal menu a discesa Sort On, infine specifica l'ordine desiderato nella sezione Order. Vedi screenshot:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Fai clic su OK: l'area dati sarà ordinata per dominio email come mostrato nello screenshot seguente:
3.5 Ordina una colonna per farla corrispondere a un'altra
Se hai due colonne con dati identici o quasi identici ma in ordine diverso, potresti volerle ordinare in modo che i valori corrispondenti siano allineati sulle stesse righe. In questa sezione vedremo due casi di questo tipo di ordinamento.
Ordina due colonne con gli stessi elementi per allinearle
Ad esempio, ho due colonne che contengono gli stessi elementi ma in ordine diverso; voglio ordinare la seconda colonna per farla corrispondere alla prima, come mostrato nello screenshot seguente.
1. Digita la formula qui sotto in una cella vuota accanto ai dati originali, poi trascina il quadratino di riempimento per applicarla a tutte le celle dell'elenco: questo restituirà la posizione di ogni valore della colonna B rispetto alla colonna A, vedi screenshot:
=MATCH(B2,$A$2:$A$10,0)
2. Poi, seleziona la colonna B e la nuova colonna di supporto e fai clic su Data > Sort per aprire la finestra di dialogo Sort; nella finestra Sort, esegui le seguenti operazioni:
- Seleziona la colonna di supporto su cui vuoi basare l'ordinamento dalla sezione Column;
- Poi, scegli Cell Values nella sezione Sort On;
- Infine, seleziona l'opzione Smallest to Largest nella sezione Order.
3. Poi, fai clic su OK: ora le due colonne saranno perfettamente allineate come mostrato nello screenshot seguente. Puoi eliminare la colonna della formula se non ti serve più.
Ordina due colonne con elementi diversi per allinearle
A volte gli elementi nelle due colonne potrebbero non essere esattamente gli stessi. Ad esempio, voglio ordinare i dati della seconda colonna per farli corrispondere a quelli della prima, in modo che i valori uguali siano allineati sulle stesse righe come nello screenshot seguente.
1. Inserisci una nuova colonna vuota tra le due colonne.
2. Inserisci la formula qui sotto nella cella B2, poi trascina il quadratino di riempimento per applicarla alle celle necessarie. Ora vedrai che i dati della colonna C sono stati ordinati per corrispondere a quelli della colonna A.
=IF(ISNA(MATCH(A2,$C$2:$C$8,0)),"",INDEX($C$2:$C$8,MATCH(A2,$C$2:$C$8,0)))
3.6 Ordina ed estrai valori unici da un elenco di dati
Se hai un elenco di valori con dei duplicati e vuoi estrarre solo i valori unici e ordinarli alfabeticamente come nello screenshot seguente, ecco alcune formule per gestire questo tipo di ordinamento.
1. Inserisci la formula qui sotto in una cella vuota – C2, poi premi Ctrl + Shift + Enter per ottenere il primo risultato, vedi screenshot:
=IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($A$2:$A$12,"<"&$A$2:$A$12)-SUM(COUNTIF($A$2:$A$12,"="&C$1:C1)),0)),"")
Nota: nella formula, A2:A12 è l'elenco dati da cui vuoi estrarre i valori unici, C1 è la cella sopra la formula inserita. Modificali secondo le tue esigenze.
2. Poi trascina il quadratino di riempimento per estrarre i valori finché non compaiono celle vuote: tutti i valori unici saranno estratti e ordinati in ordine crescente, vedi screenshot:
1. Se vuoi che i valori unici estratti siano ordinati in ordine decrescente, applica la formula qui sotto: (Ricorda di premere Ctrl + Shift + Enter)
=IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($A$2:$A$12,">"&$A$2:$A$12)-SUM(COUNTIF($A$2:$A$12,"="&C$1:C1)),0)),"")
2. Se l'elenco dati contiene celle vuote o valori numerici, la formula sopra non funzionerà; in questo caso usa le formule seguenti: (Ricorda di premere Ctrl + Shift + Enter)
=IFERROR(SMALL(IF((COUNTIF($C$1:C1,$A$2:$A$12)=0)*ISNUMBER($A$2:$A$12),$A$2:$A$12,"A"),1),INDEX($A$2:$A$12,MATCH(SMALL(IF(ISTEXT($A$2:$A$12)*(COUNTIF(C1:$C$1,$A$2:$A$12)=0),COUNTIF($A$2:$A$12,"<"&$A$2:$A$12),""),1),IF(ISTEXT($A$2:$A$12),COUNTIF($A$2:$A$12,"<"&$A$2:$A$12),""),0)))
3.7 Ordina più righe o colonne indipendentemente e contemporaneamente
È facile ordinare un intervallo di dati in base a una riga o colonna, ma a volte potresti voler alfabetizzare ogni riga o colonna dell'intervallo indipendentemente: come puoi fare in Excel?
Ordina più righe singolarmente
Supponiamo di avere un intervallo di dati che deve essere riordinato alfabeticamente in ogni riga come nello screenshot qui sotto: ecco due trucchi rapidi per risolvere il problema.
Ordina più righe indipendentemente e contemporaneamente con una formula
1. Copia le etichette delle righe in un'altra posizione dove vuoi ottenere il risultato ordinato.
2. Poi, copia o inserisci la formula qui sotto in una cella vuota – H2, quindi premi Ctrl + Shift + Enter per ottenere il primo risultato, vedi screenshot:
=INDEX($B2:$E2, MATCH(COLUMNS($B2:B2), COUNTIF($B2:$E2, "<="&$B2:$E2),0))
3. Poi, seleziona la cella con la formula H2 e trascina il quadratino di riempimento verso destra per copiare la formula nelle altre celle della prima riga, in questo esempio fino a K2, vedi screenshot:
4. Continua selezionando le celle con la formula nella prima riga (H2:K2) e trascina il quadratino di riempimento verso il basso per copiare la formula nelle altre righe. Ora vedrai che i valori di ogni riga sono stati ordinati individualmente in ordine crescente.
Ordina più righe indipendentemente e contemporaneamente con codice VBA
Il seguente codice VBA può aiutarti a ordinare i dati di ogni riga alfabeticamente con facilità. Procedi così:
1. Seleziona i dati che vuoi ordinare in ogni riga.
2. Tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
3. Poi, fai clic su Insert > Module e incolla il codice seguente nella finestra del modulo.
Codice VBA: ordina più righe indipendentemente e contemporaneamente
Sub SortIndividualR()
'Updateby Extendoffice
Dim xRg As Range, yRg As Range
If TypeName(Selection) <> "Range" Then Exit Sub
Set xRg = Selection
If xRg.Count = 1 Then
MsgBox "Select multiple cells!", vbExclamation, "Kutools for Excel"
Exit Sub
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Application.ScreenUpdating = False
For Each yRg In xRg.Rows
yRg.Sort Key1:=yRg.Cells(1, 1), _
Order1:=xlAscending, _
Header:=xlNo, _
Orientation:=xlSortRows
Next yRg
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
Application.ScreenUpdating = True
End Sub
4. Poi, premi F5 per eseguire il codice: i dati di ogni riga saranno ordinati in ordine crescente, vedi screenshot:
Ordina più colonne singolarmente
Per ordinare i dati di ogni colonna singolarmente, puoi utilizzare uno dei due metodi seguenti.
Ordina più colonne indipendentemente e contemporaneamente con una formula
1. Copia le etichette delle colonne in un'altra posizione dove vuoi ottenere il risultato ordinato.
2. Poi, inserisci la formula qui sotto in una cella vuota – F3, premi Ctrl + Shift + Enter per ottenere il primo risultato, poi trascina il quadratino di riempimento verso il basso per copiare la formula nelle altre righe, vedi screenshot:
=INDEX(A$3:A$6,MATCH(ROWS(A$3:A3),COUNTIF(A$3:A$6,"<="&A$3:A$6),0))
3. Continua selezionando le celle con la formula nella prima riga (F3:F6) e trascina il quadratino di riempimento verso destra per copiare la formula nelle altre colonne. Ora i valori di ogni colonna saranno ordinati individualmente in ordine crescente come mostrato nello screenshot seguente:
Ordina più colonne indipendentemente e contemporaneamente con codice VBA
Per ordinare i dati di più colonne indipendentemente, puoi utilizzare anche il seguente codice VBA. Procedi così:
1. Tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Poi, fai clic su Insert > Module e incolla il codice seguente nella finestra del modulo.
Codice VBA: ordina più colonne indipendentemente e contemporaneamente
Sub SortIndividualJR()
'Updateby Extendoffice
Dim xRg As Range
Dim yRg As Range
Dim ws As Worksheet
Set ws = ActiveSheet
On Error Resume Next
Set xRg = Application.InputBox(Prompt:="Range Selection:", _
Title:="Kutools for excel", Type:=8)
Application.ScreenUpdating = False
For Each yRg In xRg
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=yRg, Order:=xlAscending
.SetRange ws.Range(yRg, yRg.End(xlDown))
.Header = xlNo
.MatchCase = False
.Apply
End With
Next yRg
Application.ScreenUpdating = True
End Sub
3. Poi, premi F5 per eseguire il codice: apparirà una finestra di selezione, scegli l'area dati da ordinare, vedi screenshot:
4. Poi, fai clic su OK: ogni colonna sarà ordinata individualmente in modo rapido.
3.8 Ordina i dati in modo casuale in Excel
Di solito ordiniamo i dati alfabeticamente in ordine crescente o decrescente, ma hai mai provato a ordinare i dati in un intervallo selezionato in modo casuale? In questa sezione vedremo come mescolare un intervallo di celle in ordine casuale.
Ordina una colonna di dati in modo casuale con una colonna di supporto
Normalmente puoi usare la funzione RAND per ottenere numeri casuali e poi ordinare i dati in base a questa lista casuale. Procedi così:
1. Inserisci questa formula: =RAND() in una cella vuota accanto ai tuoi dati e trascina il quadratino di riempimento verso il basso per creare una lista di numeri casuali come mostrato nello screenshot:
2. Mantieni selezionate le celle con la formula e poi fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort: l'elenco dati sarà mescolato immediatamente, vedi screenshot:
Ordina celle, righe o colonne in modo casuale con una funzione avanzata
Kutools per Excel offre una funzione potente – Riordina casualmente, con cui puoi mescolare i dati in un intervallo di celle, in ogni colonna/riga di una selezione, oppure mescolare intere righe o colonne in un solo passaggio.
1. Seleziona l'area dati che vuoi ordinare casualmente, poi fai clic su Kutools Plus > Sort > Sort Range Randomly. Vedi screenshot:
2. Nella finestra di dialogo Riordina, Seleziona o Mescola, sotto la scheda Riordina, scegli una delle seguenti opzioni secondo necessità:
- Intere righe: mescola tutte le righe nell'intervallo selezionato in modo casuale.
- Intere colonne: mescola tutte le colonne nell'intervallo selezionato in modo casuale.
- Celle in ogni riga: mescola le celle in ogni riga individualmente.
- Celle in ogni colonna: mescola le celle in ogni colonna individualmente.
- Tutte le celle nell'intervallo: mescola tutte le celle nell'intervallo selezionato.
3. Poi, fai clic su Ok: i dati saranno mescolati immediatamente.
3.9 Ordina un elenco di date per mese, giorno o mese e giorno
Quando ordini le date in Excel, la funzione Ordina ordina l'elenco di date per anno, mese e giorno per impostazione predefinita, ma in alcuni casi potresti voler disporre le date solo per mese o giorno, o per mese e giorno ignorando l'anno. Come risolvere questo problema in Excel?
Ordina un elenco di date per mese o giorno con una colonna di supporto
Per ordinare le date solo per mese o giorno, estrai i numeri di mese o giorno dalle date e poi ordina le date in base alla colonna dei numeri estratti.
1. Inserisci la formula qui sotto in una cella vuota accanto ai tuoi dati e trascina il quadratino di riempimento verso il basso per copiarla nelle altre celle, vedi screenshot:
=MONTH(B2) (estrae il numero del mese)
=DAY(B2) (estrae il numero del giorno)
2. Dopo aver ottenuto i numeri di mese o giorno, mantieni selezionate le celle con la formula e poi fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort: le date saranno ora ordinate per mese, ignorando anni e giorni. Vedi screenshot:
Ordina un elenco di date per mese o giorno con pochi clic
Se disponi di Kutools per Excel, con la funzione Ordinamento avanzato puoi ordinare un elenco di date solo per mese o giorno in pochi clic.
Kutools per Excel - Ricco di oltre 300 strumenti essenziali per Excel. Goditi funzionalità AI permanentemente gratuite! Scarica ora!
1. Seleziona l'area dati che vuoi ordinare, poi fai clic su Kutools Plus > Sort > Advanced Sort.
2. Nella finestra di dialogo Advanced Sort, seleziona la colonna da ordinare nella sezione Column e scegli Month o Day dal menu a discesa Sort On, infine specifica l'ordine desiderato nella sezione Order.
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Poi, fai clic su OK: i dati saranno ordinati in base a mese o giorno come specificato, ignorando l'anno, vedi screenshot:
Ordina un elenco di date per mese e giorno con una colonna di supporto
Se hai bisogno di ordinare un elenco di date solo per mese e giorno senza considerare l'anno, la funzione TEXT può aiutarti a convertire la data in una stringa di testo nel formato desiderato e poi applicare la funzione Ordina.
1. Inserisci la formula qui sotto in una cella vuota accanto ai tuoi dati e copia la formula fino in fondo ai tuoi dati: mese e giorno saranno estratti come stringa di testo come mostrato nello screenshot:
=TEXT(B2,"MMDD")
2. Mantieni selezionate le celle con la formula e poi fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort: ora i tuoi dati saranno ordinati solo per mese e giorno.
3.10 Ordina un elenco di date per giorno della settimana
Per ordinare un elenco di date per giorno della settimana, cioè ordinare le date da Lunedì a Domenica o da Domenica a Sabato, ecco due metodi per completare questa attività in Excel.
Ordina un elenco di date per giorno della settimana con una colonna di supporto
Per ordinare le date per giorno della settimana, serve una colonna di supporto che restituisca un numero corrispondente al giorno della settimana, poi ordina le date per questa colonna.
1. Inserisci o copia la formula qui sotto in una cella vuota e trascina il quadratino di riempimento verso il basso per copiarla nelle altre celle, vedi screenshot:
=WEEKDAY(B2)(Inizia da Domenica (1) a Sabato (7))
=WEEKDAY(B2,2)(Inizia da Lunedì (1) a Domenica (7))
2. Mantieni selezionate le celle con la formula e poi fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort per ottenere il risultato desiderato, vedi screenshot:
Ordina un elenco di date per giorno della settimana con un'opzione semplice
Con la funzione Ordinamento avanzato di Kutools per Excel puoi risolvere questo problema rapidamente senza alcuna formula di supporto.
1. Seleziona l'area dati da ordinare, poi fai clic su Kutools Plus > Sort > Advanced Sort.
2. Nella finestra di dialogo Advanced Sort, seleziona la colonna da ordinare nella sezione Column e scegli Day of the week dal menu a discesa Sort On, infine specifica l'ordine desiderato nella sezione Order.
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Poi, fai clic su OK: i dati saranno ordinati per giorno della settimana come desideri. Vedi screenshot:
3.11 Ordina un elenco di date per trimestre
Questa sezione mostra come ordinare un elenco di date per trimestre ignorando l'anno, con due trucchi a disposizione.
Ordina un elenco di date per trimestre con una colonna di supporto
Come nelle soluzioni precedenti, crea una colonna di supporto con una formula per estrarre il numero di trimestre dalle date e poi ordina le date in base a questa nuova colonna.
1. Inserisci o copia la formula qui sotto in una cella vuota e trascina il quadratino di riempimento verso il basso per copiarla nelle altre celle, vedi screenshot:
=ROUNDUP(MONTH(B2)/3,0)
2. Mantieni selezionate le celle con la formula e poi fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort: l'area dati sarà ordinata per trimestre come mostrato nello screenshot seguente:
Ordina un elenco di date per trimestre con una funzione pratica
Se hai installato Kutools per Excel, la funzione Ordinamento avanzato ti aiuta a risolvere questo compito in pochi clic.
1. Seleziona l'area dati che vuoi ordinare, poi fai clic su Kutools Plus > Sort > Advanced Sort.
2. Nella finestra di dialogo Advanced Sort, seleziona la colonna da ordinare nella sezione Column e scegli Quarter dal menu a discesa Sort On, infine specifica l'ordine desiderato nella sezione Order.
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Infine, fai clic su OK: l'intervallo selezionato sarà ordinato per trimestre come desideri.
3.12 Ordina i dati in base ai nomi dei mesi o dei giorni della settimana
Se hai un elenco di nomi di mesi come testo, l'ordinamento li disporrà in ordine alfabetico invece che da Gennaio a Dicembre. Se vuoi ordinare i nomi dei mesi da Gennaio a Dicembre, puoi utilizzare un ordinamento personalizzato nella funzione Ordina.
1. Seleziona l'area dati che vuoi ordinare in base ai nomi dei mesi, poi fai clic su Data > Sort per aprire la finestra di dialogo Sort.
2. Nella finestra di dialogo Sort, nella sezione Column seleziona il nome della colonna che contiene i nomi dei mesi, nella sezione Sort on scegli Cell Values, infine nella sezione Order seleziona Custom List, vedi screenshot:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Poi, nella finestra Custom List che si apre, seleziona i nomi dei mesi completi (Gennaio, Febbraio, Marzo, …) o abbreviati (Gen, Feb, Mar…) in base a come sono elencati nel foglio, vedi screenshot:
4. Poi, fai clic su OK > OK per chiudere le finestre di dialogo: ora i tuoi dati saranno ordinati per nome del mese in ordine cronologico come mostrato nello screenshot seguente:
Suggerimento: per ordinare per nome del giorno della settimana, seleziona i nomi completi (Domenica, Lunedì, Martedì, …) o abbreviati (Dom, Lun, Mar…) nella finestra Custom Lists secondo necessità.
3.13 Ordina i dati in base a numeri pari o dispari
Di solito è facile ordinare i numeri in ordine crescente o decrescente in Excel, ma hai mai provato a ordinare i numeri da dispari a pari o da pari a dispari in un elenco? In questa sezione vedremo alcuni metodi per farlo.
Ordina i dati per numeri pari o dispari con una colonna di supporto
Per ordinare l'elenco di numeri per numeri pari o dispari, crea una formula per identificare i numeri pari o dispari e poi applica la funzione Ordina.
1. Accanto all'elenco di numeri, inserisci la formula =ISODD(A2) in una cella vuota e trascina per copiarla nelle altre celle: ora vedrai TRUE e FALSE, dove TRUE indica numeri dispari e FALSE numeri pari.
2. Mantieni selezionate le celle con la formula e poi fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort: tutti i numeri pari saranno ordinati insieme e poi quelli dispari, o viceversa. Vedi screenshot:
Ordina i dati per numeri pari o dispari con una funzione utile
Con la funzione Ordinamento avanzato di Kutools per Excel puoi ordinare rapidamente i numeri da dispari a pari o viceversa.
1. Seleziona l'area dati che vuoi ordinare, poi fai clic su Kutools Plus > Sort > Advanced Sort.
2. Nella finestra di dialogo Advanced Sort, fai clic sulla colonna da ordinare nella sezione Column e scegli Odd and even number nella sezione Sort On, poi specifica l'ordine di ordinamento (A to Z ordina da pari a dispari, Z to A da dispari a pari), vedi screenshot:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che l'opzione My data has headers sia selezionata. Se i dati non hanno intestazioni, deselezionala.
3. Poi, fai clic su OK: otterrai i seguenti risultati:
3.14 Ordina i dati in base ai valori assoluti
Se nella colonna ci sono sia numeri positivi che negativi, durante l'ordinamento i numeri verranno disposti in ordine crescente o decrescente per impostazione predefinita in Excel. Ma in alcuni casi potresti voler ignorare il segno negativo durante l'ordinamento, cioè ordinare i numeri per valore assoluto. Come fare in Excel?
Ordina i dati per valori assoluti con una colonna di supporto
Per ordinare i numeri per valore assoluto, normalmente crea una formula per convertire tutti i valori in valori assoluti e poi applica la funzione Ordina.
1. In una cella vuota adiacente, ad esempio B2, inserisci la formula =ABS(A2) e trascina il quadratino di riempimento per copiarla nelle altre celle. Ora vedrai che tutti i valori sono stati convertiti in valori assoluti:
2. Mantieni selezionate le celle con la formula e poi fai clic su Data > Sort A to Z o Sort Z to A secondo necessità; nella finestra Sort Warning che appare, seleziona Expand the selection, vedi screenshot:
3. Poi, fai clic su Sort: tutti i numeri saranno ordinati per valore assoluto come mostrato nello screenshot seguente:
Ordina i dati per valori assoluti con un'opzione pratica
Se non vuoi creare una colonna di supporto, ti consiglio Kutools per Excel: con la funzione Ordinamento avanzato puoi ordinare direttamente i numeri per valore assoluto.
Kutools per Excel - Ricco di oltre 300 strumenti essenziali per Excel. Goditi funzionalità AI permanentemente gratuite! Scarica ora!
1. Seleziona l'area dati che vuoi ordinare, poi fai clic su Kutools Plus > Sort > Advanced Sort.
2. Nella finestra di dialogo Advanced Sort, fai clic sulla colonna da ordinare nella sezione Column e scegli Absolute value nella sezione Sort On, poi specifica l'ordine di ordinamento, vedi screenshot:
Suggerimento: se i tuoi dati includono intestazioni, assicurati che My data has headers sia selezionato. Se i dati non hanno intestazioni, deselezionalo.
3. Poi, fai clic su OK: tutti i numeri saranno ordinati dal più piccolo al più grande o viceversa, ignorando il segno negativo.
Ordina i dati automaticamente durante l'inserimento o la modifica
La funzione Ordina di Excel non è dinamica: dovrai riordinare i dati dopo ogni modifica o quando vengono aggiunti nuovi dati. In questa sezione vedremo come ordinare automaticamente i dati ogni volta che viene aggiunto un nuovo valore nell'area dati.
4.1 Ordina automaticamente i valori numerici in una colonna con le formule
Per ordinare automaticamente un elenco di numeri in ordine crescente o decrescente, puoi usare formule basate sulle funzioni LARGE, SMALL e ROW.
1. Inserisci o copia la formula qui sotto in una cella vuota accanto ai dati di origine, poi trascina il quadratino di riempimento verso il basso sulle celle dove vuoi applicare la formula: i numeri saranno disposti dal più piccolo al più grande, vedi screenshot:
=IFERROR(SMALL($A$2:$A$100,ROWS(B$2:B2)),"")
Nota: in questa formula, A2:A100 è l'elenco numerico che vuoi ordinare automaticamente, inclusi alcuni spazi vuoti per nuovi inserimenti, B2 è la cella dove inserisci la formula.
2. Ora, modificando i dati di origine o inserendo nuovi dati, l'elenco ordinato si aggiornerà automaticamente come mostrato nella demo qui sotto:
Suggerimento: per ordinare automaticamente i numeri in ordine decrescente, applica la formula qui sotto:
=IFERROR(LARGE($A$2:$A$100,ROWS(B$2:B2)),"")
4.2 Ordina automaticamente i valori di testo in una colonna con le formule
Se vuoi ordinare automaticamente i valori di testo in una colonna, la formula precedente non funzionerà: ecco un'altra formula che può aiutarti, procedi così:
1. Inserisci o copia la formula qui sotto in una cella vuota accanto alla colonna dati, poi premi Ctrl + Shift + Enter per ottenere il primo testo, seleziona la cella con la formula e trascina il quadratino di riempimento verso il basso sulle celle da ordinare, vedi screenshot:
=IFERROR(INDEX($A$2:$A$100,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$100,">="&$A$2:$A$100),0)),"")
2. Da ora in poi, inserendo o modificando i dati originali nella colonna A, le stringhe di testo nella colonna B saranno ordinate automaticamente in ordine crescente, vedi demo sotto:
Suggerimento: per ordinare automaticamente le stringhe di testo in ordine decrescente, applica la formula qui sotto (ricorda di premere Ctrl + Shift + Enter):
=IFERROR(INDEX($A$2:$A$100,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$100,">="&$A$2:$A$100),0)),"")
4.3 Ordina automaticamente il mix di valori numerici e di testo in una colonna con codice VBA
Se in una colonna ci sono sia valori numerici che di testo, per ordinare automaticamente l'elenco dati puoi usare il codice VBA qui sotto.
1. Fai clic con il tasto destro sulla scheda del foglio dove vuoi ordinare automaticamente i dati, poi seleziona Visualizza codice dal menu contestuale; nella finestra Microsoft Visual Basic for Applications che appare, copia e incolla il codice seguente nella finestra del modulo, vedi screenshot:
Codice VBA: ordinamento automatico quando vengono inseriti o modificati dati in ordine crescente:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
On Error Resume Next
If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Nota: nel codice sopra, i dati inseriti saranno ordinati automaticamente nella colonna A. A1 è l'intestazione e A2 è la prima cella dell'elenco dati.
2. Poi, salva e chiudi la finestra del codice. Ora, inserendo nuovi dati o modificando i dati originali nella colonna A, i dati saranno ordinati automaticamente in ordine crescente. Vedi demo sotto:
Suggerimento: se vuoi ordinare l'elenco dati in ordine decrescente, applica il codice seguente:
Codice VBA: ordinamento automatico quando vengono inseriti o modificati dati in ordine decrescente:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
On Error Resume Next
If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Range("A1").Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Altri casi di ordinamento
Nel lavoro quotidiano potresti avere altre esigenze di ordinamento. In questa sezione vedremo altri tipi di ordinamento, come ordinare i dati all'interno di una cella, invertire l'ordine dei dati in una colonna o riga e altro ancora.
5.1 Ordina i dati all'interno di una cella
Per ordinare una stringa di testo all'interno di una singola cella in ordine alfabetico, ad esempio ordinare il testo “HDAW” come “ADHW”; oppure per ordinare più parole separate da virgola in una cella, come “word, outlook, excel, access” in “access, excel, outlook, word”. In questa sezione vedremo come risolvere questo tipo di ordinamento in Excel.
Ordina il valore stringa all'interno di una cella in ordine alfabetico
Per ordinare il valore stringa all'interno di una cella in ordine alfabetico, crea una Funzione Definita dall'Utente. Procedi così:
1. Tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Fai clic su Insert > Module e incolla il codice seguente nella finestra del modulo.
Codice VBA: ordina il valore di testo all'interno della cella
Function SortCellContents(xRange As Range)
'Updateby Extendoffice
Dim xArr
Dim xF1, xF2 As Integer
Dim xStrValue As String
Dim xStrT As String
If xRange.Count <> 1 Then
Exit Function
End If
xStrValue = xRange.Value
ReDim xArr(1 To Len(xStrValue))
For xF1 = 1 To UBound(xArr)
xArr(xF1) = Mid(xStrValue, xF1, 1)
Next
For xF1 = 1 To UBound(xArr)
For xF2 = xF1 To UBound(xArr)
If Asc(xArr(xF2)) < Asc(xArr(xF1)) Then
xStrT = xArr(xF2)
xArr(xF2) = xArr(xF1)
xArr(xF1) = xStrT
End If
Next xF2
Next xF1
SortCellContents = Join(xArr, "")
End Function
3. Poi salva e chiudi il codice, torna al foglio di lavoro. Inserisci la formula =SortCellContents(A2) in una cella vuota dove vuoi il risultato e trascina il quadratino di riempimento verso il basso per copiare la formula nelle altre celle: tutti i valori di testo saranno ordinati alfabeticamente, vedi screenshot:
Ordina stringhe di testo separate da un delimitatore all'interno di una cella in ordine alfabetico
Se ci sono più parole separate da delimitatori specifici in una cella, per ordinarle alfabeticamente all'interno della cella puoi usare la Funzione Definita dall'Utente qui sotto.
1. Tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Fai clic su Insert > Module e incolla il codice seguente nella finestra del modulo.
Codice VBA: ordina stringhe di testo separate da virgola all'interno della cella
Function SortCellWithSeparator(CellAddress As Range, DelimiterChar As String, IncludeSpaces As Boolean) As String
'Updateby Extendoffice
Dim xRg As Range
Dim xString As String
Dim xF1, xF2 As Integer
Dim xSArr
Dim xStrT As String
Dim xStrValue As String
Set xRg = CellAddress
xStrValue = WorksheetFunction.Substitute(xRg.Value, " ", "")
xSArr = Split(xStrValue, DelimiterChar)
For xF1 = 0 To UBound(xSArr)
For xF2 = xF1 + 1 To UBound(xSArr)
If xSArr(xF2) < xSArr(xF1) Then
xStrT = xSArr(xF2)
xSArr(xF2) = xSArr(xF1)
xSArr(xF1) = xStrT
End If
Next xF2
Next xF1
xStrValue = ""
For xF1 = 0 To UBound(xSArr)
xStrValue = xStrValue & xSArr(xF1) & DelimiterChar
Next xF1
SortCellWithSeparator = xStrValue
SortCellWithSeparator = Left(SortCellWithSeparator, Len(SortCellWithSeparator) - 1)
If IncludeSpaces = True Then SortCellWithSeparator = WorksheetFunction.Substitute(SortCellWithSeparator, ",", ", ")
End Function
3. Poi salva e chiudi il codice, torna al foglio di lavoro, inserisci la formula =SortCellWithSeparator(A2,",",TRUE) in una cella vuota dove vuoi il risultato e trascina il quadratino di riempimento verso il basso per copiare la formula nelle altre celle: tutte le stringhe di testo saranno ordinate alfabeticamente, vedi screenshot:
Nota: se le tue stringhe di testo sono separate da altri delimitatori, basta cambiare la virgola nella formula con il tuo separatore.
5.2 Inverti/capovolgi l'ordine dei dati in una colonna o riga
A volte potresti voler invertire l'ordine dei dati dall'alto verso il basso in un intervallo verticale o da sinistra a destra in un intervallo orizzontale. In questa sezione vedremo tre metodi per risolvere questo compito in Excel.
Inverti/capovolgi l'ordine dei dati in una colonna o riga con le formule
Le seguenti formule possono aiutarti a invertire l'ordine dei dati in una colonna o riga. Procedi così:
Inverti l'ordine dei dati in una colonna
Inserisci o copia la formula seguente in una cella vuota dove vuoi il risultato, poi trascina il quadratino di riempimento verso il basso per restituire i valori delle celle in ordine inverso, vedi screenshot:
=OFFSET($A$10,-(ROW(A1)-1),0)
Nota: nella formula sopra, A1 è la prima cella e A10 è l'ultima cella della colonna.
Inverti l'ordine dei dati in una riga
Applica la formula qui sotto per invertire l'ordine dei dati orizzontalmente in una riga:
=OFFSET($A$1,,COUNTA(1:1)-COLUMN(A1),)
Nota: nella formula sopra, A1 è la prima cella della riga e1:1 è il numero della riga in cui si trovano i dati. Se i dati sono nella riga10, cambialo in10:10.
Poi, trascina il quadratino di riempimento verso destra finché tutti i valori sono estratti: otterrai tutti i dati invertiti orizzontalmente, vedi screenshot:
Inverti/capovolgi l'ordine dei dati in più colonne o righe con codice VBA
Le formule sopra funzionano bene solo per una singola colonna o riga; se ci sono più colonne o righe da invertire, puoi usare i seguenti codici VBA.
Inverti l'ordine dei dati in un intervallo di celle verticalmente
1. Prima, fai un backup dei dati originali, poi tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Fai clic su Insert > Module e incolla il codice seguente nella finestra del modulo.
Codice VBA: inverti un intervallo di celle in ordine inverso verticalmente
Sub Flipvertically()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For j = 1 To UBound(Arr, 2)
k = UBound(Arr, 1)
For i = 1 To UBound(Arr, 1) / 2
xTemp = Arr(i, j)
Arr(i, j) = Arr(k, j)
Arr(k, j) = xTemp
k = k - 1
Next
Next
WorkRng.Formula = Arr
End Sub
3. Poi, premi F5 per eseguire il codice: apparirà una finestra che ti chiede di selezionare l'area dati da invertire verticalmente, vedi screenshot:
4. Poi, fai clic su OK: l'area dati sarà invertita verticalmente come mostrato negli screenshot seguenti:
Inverti l'ordine dei dati in un intervallo di celle orizzontalmente
Per invertire l'area dati in ordine orizzontale, applica il codice VBA qui sotto:
Codice VBA: inverti un intervallo di celle in ordine inverso verticalmente
Sub Fliphorizontally()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For i = 1 To UBound(Arr, 1)
k = UBound(Arr, 2)
For j = 1 To UBound(Arr, 2) / 2
xTemp = Arr(i, j)
Arr(i, j) = Arr(i, k)
Arr(i, k) = xTemp
k = k - 1
Next
Next
WorkRng.Formula = Arr
End Sub
Dopo aver eseguito questo codice, i dati nelle righe saranno invertiti orizzontalmente, vedi screenshot:
Inverti/capovolgi l'ordine dei dati in colonne o righe con un solo clic
Se hai Kutools per Excel, con le funzioni Capovolgi intervallo verticalmente e Capovolgi intervallo orizzontalmente puoi invertire l'intervallo di celle verticalmente e orizzontalmente con un solo clic.
Inverti l'ordine dei dati in un intervallo di celle verticalmente
1. Seleziona l'area dati che vuoi invertire, poi fai clic su Kutools > Range > Capovolgi intervallo verticalmente > Tutto / Capovolgi solo contenuto, vedi screenshot:
Suggerimento: se scegli l'opzione Tutto, anche tutta la formattazione delle celle sarà invertita; se scegli Capovolgi solo contenuto, solo i valori delle celle saranno invertiti.
2. Poi, l'area dati sarà invertita verticalmente immediatamente.
Inverti l'ordine dei dati in un intervallo di celle orizzontalmente
1. Seleziona l'area dati, poi fai clic su Kutools > Range > Capovolgi intervallo orizzontalmente > Tutto / Capovolgi solo contenuto, vedi screenshot:
Suggerimento: se scegli l'opzione Tutto, anche tutta la formattazione delle celle sarà invertita; se scegli Capovolgi solo contenuto, solo i valori delle celle saranno invertiti.
2. Poi, tutti i valori delle celle nella selezione saranno invertiti orizzontalmente come mostrato negli screenshot seguenti:
5.3 Ordina le schede dei fogli di lavoro in ordine alfabetico o per colore della scheda in Excel
Supponendo che ci siano molti fogli di lavoro nella tua cartella, se hai bisogno di ordinare le schede dei fogli in ordine alfabetico o in base al colore della scheda, il metodo normale – trascinare le schede – richiede molto tempo. In questa sezione vedremo alcuni trucchi per disporre le schede in ordine crescente o decrescente.
Ordina le schede dei fogli di lavoro in ordine alfabetico con codice VBA
Il seguente codice VBA può aiutarti a ordinare le schede dei fogli alfabeticamente in ordine crescente o decrescente. Procedi così:
1. Tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Fai clic su Insert > Module e incolla la macro seguente nella finestra del modulo.
VBA: ordina tutti i fogli in ordine alfabetico
Sub SortWorkBook()
'Updateby Extendoffice
Dim xResult As VbMsgBoxResult
xTitleId = "KutoolsforExcel"
xResult = MsgBox("Click Yes to sort sheets in ascending order;" & Chr(10) & "Click No will sort in descending order", vbYesNoCancel + vbQuestion + vbDefaultButton1, xTitleId)
For i = 1 To Application.Sheets.Count
For j = 1 To Application.Sheets.Count - 1
If xResult = vbYes Then
If UCase$(Application.Sheets(j).Name) > UCase$(Application.Sheets(j + 1).Name) Then
Sheets(j).Move after:=Sheets(j + 1)
End If
ElseIf xResult = vbNo Then
If UCase$(Application.Sheets(j).Name) < UCase$(Application.Sheets(j + 1).Name) Then
Application.Sheets(j).Move after:=Application.Sheets(j + 1)
End If
End If
Next
Next
End Sub
3. Poi, premi il tasto F5 per eseguire la macro: nella finestra che appare, clicca Yes per ordinare tutti i fogli in ordine alfabetico crescente; clicca No per ordinarli in ordine decrescente secondo necessità.
Ordina le schede dei fogli di lavoro in ordine alfabetico/alfanumerico con una funzione avanzata
Kutools per Excel offre una funzione potente – Ordina tutte le tabelle, con cui puoi ordinare i fogli in ordine alfabetico o alfanumerico, ordinare i fogli in base al colore della scheda o invertire le schede secondo necessità.
Kutools per Excel - Ricco di oltre 300 strumenti essenziali per Excel. Goditi funzionalità AI permanentemente gratuite! Scarica ora!
1. Apri la cartella in cui vuoi ordinare le schede dei fogli, poi fai clic su Kutools Plus > Worksheet > Ordina tutte le tabelle, vedi screenshot:
2. Nella finestra di dialogo Ordina tutte le tabelle, seleziona il tipo di ordinamento desiderato nel riquadro a destra, ad esempio Ordinamento alfabetico, Ordinamento esatto. Vedi screenshot:
3. Poi, fai clic su Ok: tutti i fogli saranno ordinati in base al tipo di ordinamento specificato. Vedi screenshot:
Ordina le schede dei fogli di lavoro in base al colore della scheda con codice VBA
Di solito ordiniamo le schede dei fogli alfabeticamente in Excel, ma hai mai provato a ordinarle in base al colore della scheda? Il codice VBA qui sotto può aiutarti a risolvere questo problema. Procedi così:
1. Tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Fai clic su Insert > Module e incolla la macro seguente nella finestra del modulo.
VBA: ordina tutti i fogli in base al colore della scheda
Sub SortWorkBookByColor()
'Updateby20140624
Dim xArray1() As Long
Dim xArray2() As String
Dim n As Integer
Application.ScreenUpdating = False
If Val(Application.Version) >= 10 Then
For i = 1 To Application.ActiveWorkbook.Worksheets.Count
If Application.ActiveWorkbook.Worksheets(i).Visible = -1 Then
n = n + 1
ReDim Preserve xArray1(1 To n)
ReDim Preserve xArray2(1 To n)
xArray1(n) = Application.ActiveWorkbook.Worksheets(i).Tab.Color
xArray2(n) = Application.ActiveWorkbook.Worksheets(i).Name
End If
Next
For i = 1 To n
For j = i To n
If xArray1(j) < xArray1(i) Then
temp = xArray2(i)
xArray2(i) = xArray2(j)
xArray2(j) = temp
temp = xArray1(i)
xArray1(i) = xArray1(j)
xArray1(j) = temp
End If
Next
Next
For i = n To 1 Step -1
Application.ActiveWorkbook.Worksheets(CStr(xArray2(i))).Move after:=Application.ActiveWorkbook.Worksheets(Application.ActiveWorkbook.Worksheets.Count)
Next
End If
Application.ScreenUpdating = True
End Sub
3. Poi, premi F5 per eseguire il codice: i fogli con lo stesso colore della scheda saranno ordinati insieme. Vedi screenshot:
Ordina le schede dei fogli di lavoro in base al colore della scheda con una funzione avanzata
Con la funzione Ordina tutte le tabelle di Kutools per Excel puoi anche ordinare rapidamente le schede dei fogli per colore.
1. Fai clic su Kutools Plus > Worksheet > Ordina tutte le tabelle per aprire la finestra di dialogo Ordina tutte le tabelle; nella finestra, fai clic sul pulsante Ordinamento per colore nel riquadro a destra, vedi screenshot:
2. Poi, fai clic su Ok: i fogli con lo stesso colore della scheda saranno raggruppati insieme come mostrato negli screenshot seguenti:
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 risparmiare tempo. Clicca qui per ottenere la funzione 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 della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!