La funzione nascosta DATA.DIFF() di Excel
- 11 Agosto 2023
- Pubblicato da: Marco Lauricella
- Categoria: Blog

Autore: Andrea P.
Un’utile funzione per le date è quella che ne calcola la differenza tra due in anni, mesi e giorni; potrebbe ad esempio essere utilizzata nel calcolo dell’anzianità lavorativa o per sapere l’età di una persona. La funzione in questione è DATA.DIFF() ed è una funzione che non è elencata nella guida in linea dell’applicativo e neanche tra quelle di Excel.
La sintassi è la seguente:
=DATA.DIFF(DataIniziale;DataFinale;Intervallo)
DataIniziale e DataFinale sono rispettivamente il giorno iniziale e finale del periodo da calcolare. Possono essere date racchiuse tra doppi apici o riferimenti a celle contenenti una data.
Intervallo è una stringa contenente l’unità di misura necessaria per ottenere il risultato, può assumere i seguenti valori:
“d” numero di giorni tra le due date, compresi gli estremi
“m” numero di mesi interi tra le due date, se DataIniziale parte dopo il primo mese, tale mese non verrà incluso nel computo
“y” numero di anni interi tra le due date, se ad esempio DataIniziale parte dopo il 1° gennaio, tale anno non verrà incluso nel computo
“yd” numero di giorni tra le due date tralasciando gli anni
“md” numero di giorni tra le due date tralasciando i mesi e gli anni
“ym” numero di mesi tra le due date tralasciando i giorni e gli anni
Se DataIniziale è maggiore di DataFinale o se Intervallo non è indicato correttamente si ha l’errore #NUM.
Se una o entrambe le date hanno un formato data non riconosciuto si ha l’errore #VALORE.
Se ad esempio si volesse calcolare l’anzianità lavorativa di un impiegato assunto il 1° gennaio 2000 si dovrà usare la seguente formula che contiene anche la funzione OGGI() utile per restituire la data corrente e l’operatore di concatenazione &:
=DATA.DIFF(“01/01/2000″;OGGI();”y”) & ” anni, ” & DATA.DIFF(“01/01/2000″;OGGI();”ym”) & ” mesi, ” & DATA.DIFF(“01/01/2000″;OGGI();”md”) & ” giorni”
A seconda della data corrente si avrà qualcosa del tipo:
16 anni, 11 mesi, 23 giorni