Sommario
In questo articolo esamineremo diversi modi per ordinare le date in Excel: imparerete come disporre rapidamente le date in ordine cronologico, come ordinare per mese ignorando gli anni, come ordinare i compleanni per mese e giorno e come ordinare automaticamente per data quando si inseriscono nuovi valori.
Le opzioni di ordinamento integrate di Excel sono strumenti potenti ed efficaci, ma non sempre funzionano correttamente quando si tratta di ordinare le date. Questa esercitazione vi insegnerà alcuni trucchi utili per organizzare Excel per data in modo significativo senza rovinare i vostri dati.
Come ordinare le date in ordine cronologico
Disporre le date in ordine cronologico in Excel è molto semplice: basta utilizzare la funzione standard Ordinamento ascendente opzione:
- Selezionare le date che si desidera ordinare cronologicamente.
- Sul Casa nella scheda Formati gruppo, fare clic su Ordinamento e filtro e selezionare Ordinamento dal più vecchio al più recente In alternativa, è possibile utilizzare il comando A-Z sull'opzione Dati nella scheda Ordinamento e filtro gruppo.
Come ordinare per data in Excel
Le opzioni di ordinamento di Excel possono essere utilizzate anche per riordinare l'intera tabella, non solo una singola colonna. Per ordinare i record per data mantenendo intatte le righe, è fondamentale espandere la selezione quando viene richiesto.
Ecco i passaggi dettagliati per ordinare i dati in Excel in base alla data:
- Nel foglio di calcolo, selezionare le date senza l'intestazione della colonna.
- Sul Casa fare clic su Ordinamento e filtro e scegliere Ordinamento dal più vecchio al più recente .
- Il Avviso di smistamento Viene visualizzata la finestra di dialogo Lasciare il valore predefinito Espandere la selezione e fare clic su Ordinamento :
I record sono stati ordinati per data e tutte le righe sono state tenute insieme:
Come ordinare per mese in Excel
Può capitare che si desideri ordinare le date per mese ignorare l'anno, ad esempio quando si raggruppano le date di anniversario di colleghi o parenti. In questo caso, la funzione di ordinamento predefinita di Excel non funziona perché considera sempre l'anno, anche se le celle sono formattate in modo da visualizzare solo il mese o il mese e il giorno.
La soluzione è aggiungere una colonna di aiuto, estrarre il numero del mese e ordinare in base a tale colonna. Per ottenere un mese dalla data, utilizzare la funzione MESE.
Nella schermata seguente, estraiamo il numero del mese dalla data in B2 con questa formula:
=MONTE(B2)
Suggerimento: se il risultato viene visualizzato come data anziché come numero, impostare il parametro Generale alle celle della formula.
E ora, ordinate la vostra tabella in base al valore Mese A questo scopo, selezionare i numeri del mese (C2:C8), fare clic su Ordinamento e filtro > Ordina dal più piccolo al più grande e poi espandere la selezione quando Excel lo richiede. Se tutto è stato fatto correttamente, si otterrà il seguente risultato:
Si prega di prestare attenzione al fatto che i nostri dati sono ora ordinati per mese, ignorando gli anni e i giorni all'interno di ogni mese. Se si desidera ordinare per mese e giorno , quindi seguire le istruzioni dell'esempio successivo.
Se i nomi dei mesi sono inseriti come testo , quindi ordinare in base a un elenco personalizzato come spiegato in questo esempio.
Come ordinare i compleanni in Excel per mese e giorno
Quando si organizzano le date per un calendario dei compleanni, la soluzione ottimale è ordinare le date per mese e giorno. Di conseguenza, è necessaria una formula che estragga i mesi e i giorni dalle date di nascita.
In questo caso, è utile la funzione TESTO di Excel, che può convertire una data in una stringa di testo nel formato specificato. Per il nostro scopo, il codice di formato "mmdd" o "mm.dd" andrà bene.
Con la data di origine in B2, la formula assume questa forma:
=TEXT(B2, "mm.gg")
Successivamente, ordinare i file Mese e giorno e i dati saranno ordinati in base ai giorni di ogni mese.
Lo stesso risultato può essere ottenuto utilizzando la formula DATE in questo modo:
=DATA(2000, MESE(B2),GIORNO(B2))
La formula genera un elenco di date estraendo il mese e il giorno dalla data effettiva in B2 e sostituendo l'anno reale con uno falso, 2000 in questo esempio, anche se è possibile inserirne uno qualsiasi. L'idea è di avere lo stesso anno per tutte le date e poi ordinare l'elenco di date in ordine cronologico. Poiché l'anno è lo stesso, le date saranno ordinate per mese e giorno, il che è esattamente ciò che si sta facendo.cercando.
Come ordinare i dati per anno in Excel
Quando si tratta di ordinare per anno, il modo più semplice è quello di disporre le date in ordine cronologico con l'ordinamento ascendente di Excel ( Dal più vecchio al più recente ).
Questo ordina le date per anno, poi per mese e infine per giorno, come mostrato nella schermata seguente.
Se per qualche motivo non si è soddisfatti di questa disposizione, è possibile aggiungere una colonna di aiuto con la formula ANNO che estrae l'anno dalla data:
=ANNO(C2)
Dopo l'ordinamento dei dati in base al valore Anno noterete che le date sono ordinate solo per anno, ignorando i mesi e i giorni .
Suggerimento: se desiderate ordinare le date per giorno trascurando i mesi e gli anni, estrarre il giorno utilizzando la funzione GIORNO, quindi ordinare in base al valore Giorno colonna:
=GIORNO(B2)
Come ordinare in base ai giorni della settimana in Excel
Per ordinare i dati in base al giorno della settimana, è necessaria anche una colonna ausiliaria come negli esempi precedenti. In questo caso, popoleremo la colonna ausiliaria con la formula WEEKDAY che restituisce un numero corrispondente al giorno della settimana e poi ordineremo in base alla colonna ausiliaria.
Per una settimana che inizia da domenica (1) a sabato (7), questa è la formula da utilizzare:
=GIORNO SETTIMANALE(A2)
Se la vostra settimana inizia dal lunedì (1) alla domenica (7), ecco quella giusta:
=GIORNO DELLA SETTIMANA(A2, 2)
Dove A2 è la cella contenente la data.
Per questo esempio, abbiamo utilizzato la prima formula e abbiamo ottenuto questo risultato:
Se i nomi dei giorni della settimana sono inseriti come testo e non come date, quindi utilizzare la funzione di ordinamento personalizzato come spiegato nell'esempio successivo.
Come ordinare i dati in Excel in base ai nomi dei mesi (o dei giorni della settimana)
Nel caso in cui si disponga di un elenco di nomi di mesi come testo Se non si tratta di date formattate per visualizzare solo i mesi, l'applicazione dell'ordinamento ascendente di Excel potrebbe essere un problema: i nomi dei mesi saranno disposti in ordine alfabetico invece che in ordine mensile, da gennaio a dicembre. In questo caso, è utile un ordinamento personalizzato:
- Selezionare i record che si desidera ordinare per nome del mese.
- Sul Dati nella scheda Ordinamento e filtro gruppo, fare clic su Ordinamento .
- Nel Ordinamento fare quanto segue:
- Sotto Colonna selezionare il nome della colonna che contiene i nomi dei mesi.
- Sotto Ordina su , scegliere Valori delle celle .
- Sotto Ordine , selezionare Elenco personalizzato .
- Nel Elenchi personalizzati Nella finestra di dialogo, selezionare i nomi dei mesi completi ( Gennaio , Febbraio , Marzo , ...) o nomi brevi ( Gennaio , Febbraio , Mar ...) a seconda di come sono elencati i mesi nel foglio di lavoro:
I dati sono stati ordinati per nome del mese in ordine cronologico, non alfabetico:
Suggerimento: per ordinare in base al valore nomi dei giorni della settimana , selezionare i nomi completi ( Domenica , Lunedì , Martedì , ...) o nomi brevi ( Sole , Lun , Mar ...) nel Elenchi personalizzati finestra di dialogo.
Come ordinare automaticamente per data in Excel
Come si è visto, la funzione di ordinamento di Excel è in grado di affrontare una serie di sfide. L'unico inconveniente è che non è dinamica, cioè bisogna riordinare i dati a ogni modifica e ogni volta che si aggiungono nuove informazioni. Forse vi state chiedendo se esiste un modo per ordinare automaticamente ogni volta che si aggiunge una nuova data, in modo che i dati siano sempre in ordine.
Il modo migliore per ottenere questo risultato è utilizzare una macro. Di seguito troverete un paio di esempi di codice per ordinare automaticamente i seguenti dati per data in ordine cronologico.
Macro 1: ordinamento automatico a ogni modifica del foglio di lavoro
Questa macro viene eseguita ogni volta che si verifica una modifica in un punto qualsiasi del foglio di lavoro.
Si presume che i dati siano nelle colonne da A a C e che le date che si desidera ordinare siano nella colonna C, a partire da C2. Si presume inoltre che la riga 1 contenga intestazioni (Header:=xlYes). Se i record sono in colonne diverse, effettuare le seguenti modifiche:
- Cambiate il riferimento A1 con la cella in alto a sinistra dell'intervallo di destinazione (incluse le intestazioni).
- Cambiare il riferimento C2 alla cella più in alto contenente una data.
Macro 2: ordinamento automatico quando vengono apportate modifiche a un intervallo specifico
Se si lavora con un foglio di lavoro enorme che contiene molte informazioni, la riordinazione con qualsiasi modifica nel foglio può essere fastidiosa. In questo caso, ha senso limitare l'attivazione della macro alle modifiche che si verificano in un intervallo specifico. Il seguente codice VBA ordina i dati solo quando viene apportata una modifica nella colonna C che contiene le date.
Private Sub Worksheet_Change( ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range( "C:C" )) Is Nothing Then Range( "A1" ).Sort Key1:=Range( "C2" ), _ Order1:=xlAscending, Header:=xlYes, _ OrderCustom:=1, MatchCase:= False , _ Orientation:=xlTopToBottom End If End SubSuggerimento: queste macro possono essere utilizzate per ordinare automaticamente per qualsiasi tipo di dati I nostri codici di esempio ordinano in ordine crescente. Se si desidera ordinare i dati in ordine crescente, si consiglia di ordinamento discendente , cambiare Order1:=xlAscending in Order1:=xlDescending.
Come aggiungere la macro al foglio di lavoro
Poiché entrambe le macro vengono eseguite automaticamente alla modifica di un foglio di lavoro, il codice deve essere inserito nel foglio in cui si desidera ordinare i dati (Foglio1 in questo esempio). Ecco come fare:
- Premere Alt + F11 per aprire l'editor VBA.
- Nel Progetto Explorer a sinistra, fare doppio clic sul foglio in cui si desidera eseguire l'ordinamento automatico.
- Incollare il codice nella finestra Codice.
Ordinamento automatico delle date con formula
Supponiamo di avere un elenco di date e di volerle disporre automaticamente in ordine cronologico in una colonna separata, affiancata all'elenco originale. Questo si può fare con la seguente formula di array:
=IFERROR(INDEX($A$2:$A$20, MATCH(ROWS($A$2:A2), COUNTIF($A$2:$A$20, "<="&$A$2:$A$20), 0)), "")
Dove A2:A20 sono le date originali (non ordinate), comprese alcune celle vuote per eventuali nuovi inserimenti.
Inserite la formula in una cella vuota accanto alla colonna con le date originali (C2 in questo esempio) e premete contemporaneamente i tasti Ctrl + Maiusc + Invio per completarla. Quindi, trascinate la formula verso il basso nelle celle rimanenti (C2:C20 nel nostro caso).
Suggerimento: per ordinare automaticamente le date appena aggiunte, assicurarsi di includere un numero sufficiente di celle vuote nell'intervallo di riferimento. Ad esempio, il nostro elenco di date è nell'intervallo A2:A7, ma forniamo $A$2:$A$20 alla formula e la popoliamo nelle celle da C2 a C20. La funzione IFERROR impedisce gli errori nelle celle extra, restituendo invece una stringa vuota ("").
L'ordinamento di Excel per data non funziona
Se le date non sono ordinate come dovrebbero, molto probabilmente sono state inserite in un formato che Excel non è in grado di comprendere, quindi vengono percepite come stringhe di testo piuttosto che come date. Il seguente tutorial spiega come distinguere le cosiddette "date di testo" e convertirle in normali date di Excel: Come convertire il testo in data in Excel.
Ecco come ordinare per data in Excel. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Download disponibili
Esempi di formula di ordinamento per data (file .xlsx)
Macro ordinamento automatico (file .xlsm)