Excel data.diff differenza tra date

Calcolare la differenza tra due date con Excel e data.diff

Autore: Andrea Pacchiarotti
Ultimo aggiornamento: 02 Gennaio 2023
Categoria: Micosoft Office Excel data.diff differenza tra date

Iscriviti gratuitamente al mio canale YouTube su Excel!
Ti serve un corso Excel? Cliccami ora!

Excel data.diff differenza tra date
Excel data.diff differenza tra date

La funzione DATA.DIFF di Microsoft Office è una delle più utili di Excel quando bisogna calcolare il numero di giorni, mesi, anni tra due date, ovvero nel momento in cui hai necessità di quantificare la differenza tra due date in Excel. Potrebbe interessarti anche l'articolo Calcolare le ore con Excel. Ma ora concentriamoci su Excel data.diff differenza tra date.

Sommario Excel data.diff differenza tra date

Calcolare la differenza tra due date in anni, mesi, giorni

Una funzione utilissima è quella che calcola la differenza tra due date in anni, mesi e giorni; ad esempio potrebbe essere utilizzata per calcolare l’anzianità lavorativa o per conoscere l’età di una persona.
La funzione in questione è nascosta ovvero non è elencata nella guida in linea dell’applicativo e non compare neanche tra le oltre 400 funzioni di Excel, ciononostante, se digitata direttamente nella cella, è funzionante.

Si chiama DATA.DIFF() e presenta la seguente sintassi:
=DATA.DIFF(DataIniziale;DataFinale;Intervallo)
DataIniziale è il giorno iniziale del periodo da calcolare
DataFinale è il giorno finale del periodo da calcolare
Entrambe gli argomenti suddetti possono essere date racchiuse tra doppi apici o riferimenti a celle contenenti una data.
Intervallo è una stringa che contiene l’unità di misura per ottenere il risultato e può assumere i seguenti valori:

Excel: Differenza tra due date con Data.diff
Excel: Differenza tra due date con Data.diff

Possibili errori:



Se ad esempio si volesse calcolare l’anzianità lavorativa di un impiegato assunto il 1° gennaio 2010 si dovrà usare la seguente formula che contiene anche la funzione OGGI() utile per restituire la data corrente e l’operatore di concatenazione &, utilizzando OGGI() si ha la comodità che il risultato sarà sempre aggiornato alla data corrente, cioè al giorno in cui si apre il file Excel, qualsiasi data sia:
=DATA.DIFF("01/01/2010";OGGI();"y") & " anni, " & DATA.DIFF("01/01/2010";OGGI();"ym") & " mesi, " & DATA.DIFF("01/01/2010";OGGI();"md") & " giorni"
A seconda della data corrente si avrà qualcosa del tipo:
6 anni, 11 mesi, 23 giorni
Ovviamente nulla vieta di avere i 3 riferimenti relativi agli anni, ai mesi e ai giorni in 3 celle diverse; in tal caso basterà mettere le 3 componenti la formula in celle diverse, ad esempio:
=DATA.DIFF("01/01/2010";OGGI();"y")
=DATA.DIFF("01/01/2010";OGGI();"ym")
=DATA.DIFF("01/01/2010";OGGI();"md")

Un altro esempio potrebbe consistere nel voler invece un risultato che non si aggiorni nel tempo come nel caso della differenza tra due date fisse.
Supponendo che nella cella A1 ci sia 01/01/2010 e nella cella B1 ci sia 10/02/2020 le formule risulteranno le seguenti:
=DATA.DIFF(A1;B1;"y")
=DATA.DIFF(A1;B1;"ym")
=DATA.DIFF(A1;B1;"md")


Sommare e detrarre anni, mesi e giorni di più intervalli temporali

Si supponga di aver calcolato 4 intervalli temporali, 3 da sommare ed uno da scorporare come nell'immagine proposta

Excel: Differenza tra due date con Data.diff
Excel: Differenza tra due date con Data.diff

Per ottenere il totale in anni, mesi e giorni vanno calcolate le 3 seguenti formule:
In D7: =SOMMA(D3:D6)+INT((SOMMA(E3:E6)+INT(SOMMA(F3:F6)/30))/12)
In E7: =RESTO(SOMMA(E3:E6)+INT(SOMMA(F3:F6)/30);12)
In F7: =RESTO(SOMMA(F3:F6);30)
Ovviamente i DATA.DIFF della riga 5 vanno con il segno negativo dovendo essere un intervallo da scorporare e quindi:
=-DATA.DIFF(B5;C5;"y") per gli anni e così via per mesi e giorni


Calcolare date precedenti il 1900

Excel memorizza le date come numeri sequenziali chiamati valori seriali. Per esempio in Excel per Windows, il 1° gennaio 1900 equivale al numero seriale 1 mentre il 1° gennaio 2022 al numero seriale 44.562 (per visualizzare le date come valori seriali è necessario modificare il formato delle celle interessate impostando Generale). Excel per Mac ed Excel per Windows supportano entrambi i sistemi di data 1900 (predefinito in Excel) e 1904 (predefinito in Mac).
Essendo valori sulle date si possono eseguire calcoli come la somma o la sottrazione, ma per quanto appena detto, solo per valori fino al 1900.
Per gestire date antecedenti si può utilizzare il componente aggiuntivo gratuito XDATE.xla di John Walkenbach. Esso aggiunge 8 nuove funzioni ad Excel:

Per attivare il componente XDATE.xla bisogna aprire le Opzioni di Excel e raggiungere i Componenti aggiuntivi, cliccare Vai e spuntare la casella di controllo opportuna. Se non compare il componente aggiuntivo desiderato, questo deve essere prima installato; ci sono più modi a seconda del componente, ad esempio cliccando su Sfoglia nella finestra Componenti aggiuntivi o attraverso un pacchetto di installazione che solitamente ha estensione msi o infine dall'Area download di Microsoft.

Data.diff e VBA

Supponendo che la Microsoft nelle successive versioni dell'applicativo Excel decida di non supportare più tale funzione, dato che già adesso è una funzione nascosta, è possibile ricorrere al codice VBA (Visual Basic for Application). Bisogna agire dal VBE (Visual Basic Editor) aprendolo dalla scheda Sviluppo attraverso l'icona Visual Basic o tramite ALT+F11, cliccando la voce di menù Inserisci posta in alto e scegliendo Modulo va inserito il codice che segue:
Function DIFFDATA(Data_iniziale As Date, Data_finale As Date, Intervallo As String) As String
DIFFDATA = DateDiff(Intervallo, Data_iniziale, Data_finale)
End Function

In tal modo si crea una UDF (User-Defined Function; leggine un altro uso per Contare e sommare celle in base al colore) cioè una funzione definita dall’utente che apparirà come le altre una volta cominciato a scrivere in una cella =d, o quando nell’elenco a discesa Oppure selezionare una categoria della finestra Inserisci funzione, si sceglierà Definite dall’utente.
L’argomento Intervallo assumerà i seguenti valori:
“yyyy” Anni
“q” Trimestri
“m” Mesi
“y” Giorni
“d” Giorni
“w” Settimane
“ww” Settimane del calendario
“h” Ore
“n” Minuti
“s” Secondi
(ww calcola tra il primo giorno della settimana dove c’è la Data_iniziale e il primo giorno della settimana dove c’è la Data_finale).
Ad esempio se in A1 c’è la data iniziale ed in B1 la data finale, la funzione =DIFFDATA(A1;A2;"yyyy") restituirà la differenza in anni; q in trimestri e così via.
Mi auguro ti sia servito leggere Excel data.diff differenza tra date!


Per saperne di più su Microsoft Excel potrebbero interessarti i video corsi Excel o questi libri:

Se vuoi approfondire alcuni dei temi trattati, visita la pagina con le mie pubblicazioni cartacee e online

Se l'articolo ti è piaciuto, condividilo!

Segui l'hashtag #AndreaPacchiarotti