Sommario
In questa esercitazione troverete una semplice spiegazione della funzione DATEDIF di Excel e alcuni esempi di formule che dimostrano come confrontare le date e calcolare la differenza in giorni, settimane, mesi o anni.
Nelle scorse settimane abbiamo analizzato quasi tutti gli aspetti del lavoro con le date e gli orari in Excel. Se avete seguito la nostra serie di blog, sapete già come inserire e formattare le date nei vostri fogli di lavoro, come calcolare i giorni della settimana, le settimane, i mesi e gli anni e come aggiungere e sottrarre date.
In questa esercitazione ci concentreremo sul calcolo della differenza di date in Excel e impareremo diversi modi per contare il numero di giorni, settimane, mesi e anni tra due date.
Trova facilmente la differenza tra due date in Excel
Ottenere il risultato come formula pronta per l'uso in anni, mesi, settimane o giorni.
Per saperne di piùAggiungere e sottrarre date in un paio di clic
Delegare la costruzione di formule di data e ora a un esperto
Per saperne di piùCalcolo al volo dell'età in Excel
E ottenere una formula personalizzata
Per saperne di piùFunzione DATEDIF di Excel - ottenere la differenza di data
Come suggerisce il nome, la funzione DATEDIF ha lo scopo di calcolare la differenza tra due date.
DATEDIF è una delle pochissime funzioni non documentate di Excel e, poiché è "nascosta", non la si troverà nella finestra di dialogo Formula Non si ottiene alcun suggerimento sugli argomenti da inserire quando si inizia a digitare il nome della funzione nella barra della formula. Per questo motivo è importante conoscere la sintassi completa di DATEDIF di Excel per poterla utilizzare nelle formule.
Sintassi della funzione DATEDIF di Excel
La sintassi della funzione DATEDIF di Excel è la seguente:
DATEDIF(data_inizio, data_fine, unità)Sono necessari tutti e tre gli argomenti:
Data_inizio - la data iniziale del periodo che si vuole calcolare.
Data_fine - la data di chiusura del periodo.
Unità - l'unità di tempo da utilizzare per calcolare la differenza tra due date. Fornendo unità diverse, è possibile far sì che la funzione DATEDIF restituisca la differenza di data in giorni, mesi o anni. Complessivamente sono disponibili 6 unità, descritte nella tabella seguente.
Unità | Significato | Spiegazione |
Y | Anni | Numero di anni completi tra le date di inizio e fine. |
M | Mesi | Numero di mesi completi tra le date. |
D | Giorni | Numero di giorni tra la data di inizio e la data di fine. |
MD | Giorni esclusi anni e mesi | La differenza di data in giorni, ignorando mesi e anni. |
YD | Giorni esclusi gli anni | La differenza di data in giorni, ignorando gli anni. |
YM | Mesi, esclusi i giorni e gli anni | La differenza di data in mesi, ignorando i giorni e gli anni. |
Formula DATEDIF di Excel
Per ottenere la differenza tra due date in Excel, il compito principale è quello di fornire le date di inizio e fine alla funzione DATEDIF. Questo può essere fatto in vari modi, a condizione che Excel sia in grado di comprendere e interpretare correttamente le date fornite.
Riferimenti cellulari
Il modo più semplice per creare una formula DATEDIF in Excel è inserire due date valide in celle separate e fare riferimento a tali celle. Ad esempio, la formula seguente conta il numero di giorni tra le date nelle celle A1 e B1:
=DATEDIF(A1, B1, "d")
Stringhe di testo
Excel riconosce le date in molti formati di testo, come "1-Gen-2023", "1/1/2023", "1 gennaio 2023", ecc. Le date come stringhe di testo racchiuse tra virgolette possono essere digitate direttamente negli argomenti di una formula. Ad esempio, è possibile calcolare il numero di mesi tra le date specificate:
=DATEDIF("1/1/2023", "12/31/2025", "m")
Numeri di serie
Poiché Microsoft Excel memorizza ogni data come un numero progressivo a partire dal 1° gennaio 1900, si utilizzano i numeri corrispondenti alle date. Sebbene sia supportato, questo metodo non è affidabile perché la numerazione delle date varia nei diversi sistemi informatici. Nel sistema di date 1900, è possibile utilizzare la formula seguente per trovare il numero di anni tra due date, 1° gennaio-2023 e 31 dicembre-2025:
=DATEDIF(44927, 46022, "y")
Risultati di altre funzioni
Per sapere quanti giorni ci sono tra oggi e il 20 maggio 2025, la formula da utilizzare è la seguente.
=DATEDIF(OGGI(), "5/20/2025", "d")
Nota: nelle formule, la data finale deve sempre essere maggiore della data iniziale, altrimenti la funzione DATEDIF di Excel restituisce l'errore #NUM!
Speriamo che le informazioni di cui sopra siano state utili per capire le basi. Ora vediamo come utilizzare la funzione DATEDIF di Excel per confrontare le date nei fogli di lavoro e restituire la differenza.
Come ottenere il numero di giorni tra due date in Excel
Se avete osservato attentamente gli argomenti di DATEDIF, avrete notato che esistono 3 diverse unità di misura per il conteggio dei giorni tra le date. Quale utilizzare dipende esattamente dalle vostre esigenze.
Esempio 1. Formula DATEDIF di Excel per calcolare la differenza di data in giorni
Supponiamo di avere la data di inizio nella cella A2 e la data di fine nella cella B2 e di volere che Excel restituisca la differenza di data in giorni. Una semplice formula DATEDIF funziona benissimo:
=DATEDIF(A2, B2, "d")
A condizione che il valore dell'argomento data_inizio sia inferiore a quello dell'argomento data_fine. Nel caso in cui la data di inizio sia maggiore della data di fine, la funzione DATEDIF di Excel restituisce l'errore #NUM, come nella riga 5:
Se si cerca una formula che restituisca la differenza di data in giorni come numero positivo o negativo, è sufficiente sottrarre una data direttamente dall'altra:
=B2-A2
Per maggiori dettagli e per ulteriori esempi di formule, consultare la sezione Come sottrarre le date in Excel.
Esempio 2. Contare i giorni in Excel ignorando gli anni
Supponiamo di avere due elenchi di date che appartengono ad anni diversi e di voler calcolare il numero di giorni che separano le date come se fossero dello stesso anno. Per farlo, si utilizza una formula DATEDIF con unità "YD":
=DATEDIF(A2, B2, "yd")
Se si desidera che la funzione DATEDIF di Excel ignori non solo gli anni ma anche i mesi, utilizzare l'unità "md". In questo caso, la formula calcolerà i giorni tra due date come se fossero dello stesso mese e dello stesso anno:
=DATEDIF(A2, B2, "md")
La schermata seguente mostra i risultati e il confronto con la schermata precedente può aiutare a capire meglio la differenza.
Suggerimento: per ottenere il numero di giorni lavorativi tra due date, utilizzare la funzione GIORNI IN RETE o GIORNI IN RETE.INTL.
Come calcolare la differenza di data in settimane
Come probabilmente avrete notato, la funzione DATEDIF di Excel non dispone di un'unità speciale per calcolare la differenza di data in settimane. Tuttavia, esiste una soluzione semplice.
Per sapere quante settimane ci sono tra due date, si può usare la funzione DATEDIF con l'unità "D" per restituire la differenza in giorni, e poi dividere il risultato per 7.
Per ottenere il numero di settimane complete tra le date, avvolgere la formula DATEDIF nella funzione ROUNDDOWN, che arrotonda sempre il numero verso lo zero:
=ROUNDDOWN((DATEDIF(A2, B2, "d") / 7), 0)
Dove A2 è la data di inizio e B2 è la data di fine del periodo che si sta calcolando.
Come calcolare il numero di mesi tra due date in Excel
Analogamente al conteggio dei giorni, la funzione DATEDIF di Excel può calcolare il numero di mesi tra due date specificate dall'utente. A seconda dell'unità di misura fornita, la formula produrrà risultati diversi.
Esempio 1. Calcolo dei mesi completi tra due date (DATEDIF)
Per contare il numero di mesi interi tra le date, si utilizza la funzione DATEDIF con l'unità "M". Ad esempio, la formula seguente confronta le date in A2 (data di inizio) e B2 (data di fine) e restituisce la differenza in mesi:
=DATEDIF(A2, B2, "m")
Nota: affinché la formula DATEDIF calcoli correttamente i mesi, la data finale deve sempre essere maggiore della data iniziale; in caso contrario, la formula restituisce l'errore #NUM.
Per evitare questi errori, si può forzare Excel a percepire sempre una data più vecchia come data iniziale e una più recente come data finale. A tale scopo, si può aggiungere un semplice test logico:
=IF(B2>A2, DATEDIF(A2,B2, "m"), DATEDIF(B2,A2, "m"))
Esempio 2. Ottenere il numero di mesi tra due date ignorando gli anni (DATEDIF)
Per contare il numero di mesi tra le date come se fossero dello stesso anno, digitare "YM" nell'argomento unità:
=DATEDIF(A2, B2, "ym")
Come si vede, questa formula restituisce un errore anche nella riga 6 in cui la data di fine è inferiore alla data di inizio. Se il vostro set di dati può contenere tali date, troverete la soluzione nei prossimi esempi.
Esempio 3. Calcolo dei mesi tra due date (funzione MESE)
Un modo alternativo per calcolare il numero di mesi tra due date in Excel è utilizzare la funzione MESE, o più precisamente una combinazione delle funzioni MESE e ANNO:
=(ANNO(B2) - ANNO(A2))*12 + MESE(B2) - MESE(A2)
Naturalmente, questa formula non è così trasparente come DATEDIF e richiede un po' di tempo per capire la logica, ma a differenza della funzione DATEDIF, può confrontare due date qualsiasi e restituire la differenza di mesi come valore positivo o negativo:
Si noti che la formula ANNO/MESE non ha problemi a calcolare i mesi della riga 6 in cui la data di inizio è più recente di quella di fine, scenario in cui la formula analoga DATEDIF fallisce.
Nota: i risultati restituiti dalle formule DATEDIF e YEAR/MONTH non sono sempre identici, perché si basano su principi diversi. La funzione DATEDIF di Excel restituisce il numero di anni di mesi di calendario completi tra le date, mentre la formula ANNO/MESE opera sui numeri dei mesi.
Ad esempio, nella riga 7 della schermata precedente, la formula DATEDIF restituisce 0 perché non è ancora trascorso un mese completo tra le date, mentre YEAR/MONTH restituisce 1 perché le date appartengono a mesi diversi.
Esempio 4. Conteggio dei mesi tra 2 date ignorando gli anni (funzione MESE)
Nel caso in cui tutte le date siano dello stesso anno o si vogliano calcolare i mesi tra le date ignorando gli anni, si può usare la funzione MESE per recuperare il mese da ogni data e poi sottrarre un mese dall'altro:
=MESE(B2) - MESE(A2)
Questa formula funziona in modo simile a DATEDIF di Excel con l'unità "YM", come dimostrato nella seguente schermata:
Tuttavia, i risultati restituiti dalle due formule differiscono di un paio di righe:
- Riga 4: la data di fine è inferiore alla data di inizio e quindi DATEDIF restituisce un errore mentre MONTH-MONTH restituisce un valore negativo.
- Riga 6: le date sono di mesi diversi, ma la differenza effettiva è di un solo giorno. DATEDIF restituisce 0 perché calcola i mesi interi tra 2 date. MONTH-MONTH restituisce 1 perché sottrae i numeri dei mesi l'uno dall'altro ignorando giorni e anni.
Come calcolare gli anni tra due date in Excel
Se avete seguito gli esempi precedenti in cui abbiamo calcolato i mesi e i giorni tra due date, potete facilmente ricavare una formula per calcolare gli anni in Excel. Gli esempi seguenti possono aiutarvi a verificare se la formula è corretta :)
Esempio 1. Calcolo degli anni completi tra due date (funzione DATEDIF)
Per conoscere il numero di anni solari completi tra due date, utilizzate il vecchio e valido DATEDIF con l'unità "Y":
=DATEDIF(A2,B2, "y")
Notate che la formula DATEDIF restituisce 0 nella riga 6, nonostante le date siano di anni diversi. Questo perché il numero di anni solari completi tra le date di inizio e fine è uguale a zero. E credo che non vi sorprenda vedere l'errore #NUM! nella riga 7, dove la data di inizio è più recente di quella di fine.
Esempio 2. Calcolo degli anni tra due date (funzione ANNO)
Un modo alternativo per calcolare gli anni in Excel è utilizzare la funzione ANNO. Analogamente alla formula MESE, si estrae l'anno da ogni data e poi si sottraggono gli anni l'uno dall'altro:
=ANNO(B2) - ANNO(A2)
Nella seguente schermata è possibile confrontare i risultati restituiti dalle funzioni DATEDIF e YEAR:
Nella maggior parte dei casi i risultati sono identici, tranne che per il fatto che:
- La funzione DATEDIF calcola gli anni solari completi, mentre la formula YEAR si limita a sottrarre un anno dall'altro. La riga 6 illustra la differenza.
- La formula DATEDIF restituisce un errore se la data di inizio è maggiore della data di fine, mentre la funzione YEAR restituisce un valore negativo, come nella riga 7.
Come ottenere la differenza di data in giorni, mesi e anni
Per contare il numero di anni, mesi e giorni completi tra due date in un'unica formula, è sufficiente concatenare tre funzioni DATEDIF:
=DATEDIF(A2, B2, "y") &" anni, "&DATEDIF(A2, B2, "ym") &" mesi, " &DATEDIF(A2, B2, "md") &" giorni"
Se si preferisce non visualizzare i valori zero, è possibile avvolgere ogni DATEDIF nella funzione IF come segue:
=IF(DATEDIF(A2,B2, "y")=0, "", DATEDIF(A2,B2, "y") & " anni ") & IF(DATEDIF(A2,B2, "ym")=0,"", DATEDIF(A2,B2, "ym") & " mesi ") & IF(DATEDIF(A2, B2, "md")=0, "", DATEDIF(A2, B2, "md") & " giorni"
La formula visualizza solo gli elementi non nulli, come mostrato nella seguente schermata:
Per altri modi di ottenere la differenza di data in giorni, vedere Come calcolare i giorni dalla data o fino alla data in Excel.
Formule DATEDIF per il calcolo dell'età in Excel
In effetti, il calcolo dell'età di una persona in base alla data di nascita è un caso speciale di calcolo della differenza di data in Excel, in cui la data finale è la data odierna. Quindi, si utilizza la solita formula DATEDIF con l'unità "Y" che restituisce il numero di anni tra le date e si inserisce la funzione TODAY() nell'argomento end_date:
=DATEDIF(A2, OGGI(), "y")
Dove A2 è la data di nascita.
La formula precedente calcola il numero di anni completi. Se si desidera ottenere l'età esatta, compresi anni, mesi e giorni, è necessario concatenare tre funzioni DATEDIF come abbiamo fatto nell'esempio precedente:
=DATEDIF(B2,OGGI(), "y") & " Anni, " & DATEDIF(B2,OGGI(), "ym") & " Mesi, " & DATEDIF(B2,OGGI(), "md") & " Giorni"
Si otterrà il seguente risultato:
Per conoscere altri metodi di conversione della data di nascita in età, consultare Come calcolare l'età dalla data di nascita.
Date & Time Wizard - modo semplice per costruire formule di differenza di data in Excel
Come dimostrato nella prima parte di questo tutorial, DATEDIF di Excel è una funzione piuttosto versatile, adatta a una varietà di usi diversi. Tuttavia, c'è un inconveniente significativo: non è documentata da Microsoft, il che significa che non troverete DATEDIF nell'elenco delle funzioni né vedrete i suggerimenti degli argomenti quando iniziate a digitare una formula in una cella. Per poter utilizzare la funzione DATEDIF innei vostri fogli di lavoro, dovete ricordare la sintassi e inserire manualmente tutti gli argomenti, il che potrebbe essere un metodo che richiede molto tempo ed è soggetto a errori, soprattutto per i principianti.
Ultimate Suite for Excel cambia radicalmente la situazione, in quanto ora fornisce la Assistente data e ora che può rendere quasi ogni formula di differenza di data in un attimo. Ecco come fare:
- Selezionate la cella in cui volete inserire la formula.
- Vai al sito Strumenti Ablebits scheda> Data e ora e fare clic sul pulsante Assistente data e ora pulsante:
- Fare clic nel campo Data 1 (o fare clic sul pulsante Finestra di dialogo di collasso a destra della casella) e selezionare una cella contenente la prima data.
- Fare clic nel campo Data 2 e selezionare una cella con la seconda data.
- Selezionate l'unità o la combinazione di unità desiderata dalla schermata Differenza in Durante questa operazione, la procedura guidata consente di visualizzare un'anteprima del risultato nella casella e della formula nella cella.
- Se l'anteprima è soddisfacente, fare clic sul pulsante Inserire la formula altrimenti provare con unità diverse.
Ad esempio, è possibile ottenere l'opzione numero di giorni tra due date in Excel:
Una volta inserita la formula nella cella selezionata, è possibile copiarla in altre celle come di consueto facendo doppio clic o trascinando la maniglia di riempimento. Il risultato sarà simile a questo:
Per presentare i risultati nel modo più adeguato, sono disponibili alcune opzioni aggiuntive:
- Escludere gli anni e/o escludere i mesi dai calcoli.
- Mostrare o non mostrare etichette di testo come giorni , mesi , settimane , e anni .
- Mostrare o non mostrare zero unità .
- Restituire i risultati come valori negativi se la data 1 (data di inizio) è maggiore della data 2 (data di fine).
A titolo di esempio, si consideri la differenza tra due date in anni, mesi, settimane e giorni, ignorando le unità zero:
Vantaggi dell'utilizzo di Date & Time Formula Wizard
Oltre alla velocità e alla semplicità, Date & Time Wizard offre altri vantaggi:
- A differenza di una normale formula DATEDIF, una formula avanzata creata dalla procedura guidata non si preoccupa di quale delle due date sia più piccola e quale più grande. La differenza viene sempre calcolata perfettamente anche se la data 1 (data iniziale) è maggiore della data 2 (data finale).
- La procedura guidata supporta tutte le unità possibili (giorni, settimane, mesi e anni) e consente di scegliere tra 11 diverse combinazioni di queste unità.
- Le formule create dalla procedura guidata sono normali formule di Excel, quindi è possibile modificarle, copiarle o spostarle come di consueto. È anche possibile condividere i fogli di lavoro con altre persone e tutte le formule rimarranno al loro posto, anche se qualcuno non ha la Ultimate Suite in Excel.
In questo modo si calcola la differenza tra due date in vari intervalli di tempo. Speriamo che la funzione DATEDIF e le altre formule che avete imparato oggi vi siano utili nel vostro lavoro.
Download disponibili
Ultimate Suite 14 giorni versione completamente funzionale (file .exe)