Menu

DATA.DIFF in Excel (DATEDIF): anni, mesi e giorni tra date

=DATA.DIFF(A2;B2;"M") conta i mesi interi tra la data di inizio in A2 e la data di fine in B2. Le unità Y, M, D, YM, MD e YD, perché DATA.DIFF manca dall'elenco delle funzioni e l'errore #NUM!.

Ogni foglio di questa pagina è interattivo: cambia un numero o una formula e si ricalcola.

=DATA.DIFF(A2;B2;"M") conta i mesi interi tra la data di inizio in A2 e la data di fine in B2. DATA.DIFF (in inglese DATEDIF) decide cosa contare con il terzo argomento, l'unità: "Y" anni, "M" mesi, "D" giorni, più tre unità che ignorano una parte delle date. La tabella mostra le formule in inglese, ma puoi scriverle anche in italiano, con il punto e virgola: =DATA.DIFF(A2;B2;"M").

Tutte le unità di DATA.DIFF su una coppia di date
E3
ABCDE
1StartEndUnitResult
22024-04-152026-09-10Y2
3M28
4D878
5YM4
6MD26
7YD148
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =DATA.DIFF($A$2;$B$2;D3)

Dal 2024-04-15 al 2026-09-10 ci sono 2 anni interi, 28 mesi interi e 878 giorni. Cambia la data di fine in B2 e guarda come si muove ogni unità. L'unità si può scrivere nella formula ("M") oppure, come qui, leggere da una cella.

Sintassi e unità di DATA.DIFF

=DATEDIF(start_date, end_date, unit)
UnitàContaDal 2024-04-15 al 2026-09-10
"Y"anni interi2
"M"mesi interi28
"D"giorni878
"YM"mesi dopo l'ultimo anno intero4
"MD"giorni dopo l'ultimo mese intero26
"YD"giorni dopo l'ultimo anno intero148

"Interi" significa che DATA.DIFF non arrotonda mai per eccesso. Dal 31 gennaio al 28 febbraio ci sono 0 mesi, perché il 28 febbraio viene prima della soglia di un mese. L'unità non distingue le maiuscole (funziona anche "m"), ma deve stare tra virgolette o in una cella.

Perché DATA.DIFF non è nell'elenco delle funzioni

DATA.DIFF è arrivata in Excel da Lotus 1-2-3, e Microsoft la mantiene solo per compatibilità. Non c'è nella finestra Inserisci funzione, il completamento automatico delle formule non la propone e nessuna descrizione comando mostra i suoi argomenti. Calcola comunque in ogni versione di Excel per Windows e Mac, e in Google Sheets. Scrivi il nome completo e la parentesi di apertura, =DATA.DIFF(, e aggiungi tu gli argomenti.

Mesi tra due date

I mesi interi sono ciò che serve nella maggior parte di contratti, abbonamenti e report sull'anzianità. Per un valore decimale, FRAZIONE.ANNO(A2;B2)*12 (in inglese YEARFRAC) restituisce i mesi mantenendo la parte decimale (la sua base predefinita conta ogni mese come 30 giorni).

Mesi di ogni abbonamento
C2
ABCD
1StartEndFull monthsDecimal months
22025-03-102026-01-0599.8
32024-04-152026-09-102828.8
42026-01-312026-02-2800.9
52025-11-012026-05-0166.0
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =DATA.DIFF(A2;B2;"M")

Il primo abbonamento è durato 9 mesi interi: il 5 gennaio viene prima del 10, quindi il decimo mese non viene contato. La terza riga mostra il caso del 31 gennaio, 0 mesi.

Anni, mesi e giorni insieme

"Y", "YM" e "MD" sono fatte per essere usate insieme. Ognuna riprende da dove si è fermata la precedente, quindi le tre rispondono a "quanto, esattamente": 2 anni, 4 mesi e 26 giorni per le date qui sopra. Calcolare l'età usa le stesse tre unità sulle date di nascita.

Anzianità di servizio
E2
ABCDEF
1HiredYearsMonthsDaysServiceAs of
22019-06-0373277y 3m 27d2026-09-30
32023-11-20210102y 10m 10d
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =B2&"y "&C2&"m "&D2&"d"

Al 2026-09-30 il primo dipendente ha un'anzianità di 7 anni, 3 mesi e 27 giorni.

Perché DATA.DIFF restituisce #NUM!

DATA.DIFF si rifiuta di contare all'indietro. Quando la data di inizio è successiva alla data di fine, il risultato è #NUM! (lo stesso nome in Excel italiano e in inglese). Se l'ordine può variare, dai a DATA.DIFF la data più vecchia con MIN e quella più recente con MAX.

Data di inizio dopo la data di fine
C2
ABCD
1StartEndDATEDIFWith MIN and MAX
22026-03-102026-01-05#NUM!64
#NUM! Un numero è fuori dall’intervallo accettato da questa funzione.In Excel in italiano: =DATA.DIFF(A2;B2;"D")

C2 mostra #NUM!; D2 restituisce 64. Per i soli giorni, =ASS(B2-A2) (in inglese ABS) dà lo stesso 64 senza DATA.DIFF. DATA.DIFF restituisce #NUM! anche per un'unità sconosciuta come "W", e #VALORE! (in inglese #VALUE!; la tabella mostra i nomi inglesi degli errori) quando una data è un testo che Excel non riesce a leggere come data.

L'unità MD può sbagliare

La documentazione stessa di Microsoft sconsiglia "MD": quando il giorno di inizio non esiste nel mese prima della data di fine, può restituire un numero negativo.

MD dal 31 gennaio
C2
ABCD
1StartEndMDD
22026-01-312026-03-01-229
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =DATA.DIFF(A2;B2;"MD")

Dal 31 gennaio al 1 marzo il risultato di "MD" è -2: DATA.DIFF conta dal "31 febbraio", che scivola al 3 marzo, due giorni dopo la data di fine. Il conteggio dei giorni, 29, è giusto. Quando le date di inizio possono cadere tra il 29 e il 31, mostra la durata in giorni, oppure controlla a mano il valore MD.

Esercizio: contare i mesi

Tocca a te
C2
ABC
1StartEndMonths
22025-03-102026-01-05
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: In C2, conta i mesi interi tra la data di inizio in A2 e la data di fine in B2.

Tocca a te: in qualsiasi ordine
C2
ABC
1Date 1Date 2Days
22026-04-182026-02-01
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: In C2, conta i giorni tra le due date, qualunque delle due venga prima.

Domande frequenti

Cosa fa DATA.DIFF in Excel?

Conta gli anni, i mesi o i giorni interi tra due date: =DATA.DIFF(A2;B2;"Y") per gli anni, "M" per i mesi, "D" per i giorni. La data di inizio deve venire per prima.

Perché non trovo DATA.DIFF in Excel?

DATA.DIFF esiste per compatibilità con Lotus 1-2-3, quindi Excel la lascia fuori dalla finestra Inserisci funzione e dal completamento automatico delle formule. Funziona comunque in ogni versione: scrivi =DATA.DIFF( per intero e aggiungi tu gli argomenti.

Perché DATA.DIFF restituisce #NUM!?

La data di inizio è successiva alla data di fine. Inverti gli argomenti, oppure usa =DATA.DIFF(MIN(A2;B2);MAX(A2;B2);"D") quando non sai quale data viene prima.

Che differenza c'è tra YM, MD e YD in DATA.DIFF?

Ignorano una parte delle date: "YM" dà i mesi che restano dopo gli anni interi, "MD" i giorni che restano dopo i mesi interi, e "YD" i giorni che restano dopo gli anni interi. Insieme, "Y", "YM" e "MD" danno un'età in anni, mesi e giorni.

DATA.DIFF funziona in Google Sheets?

Sì, con gli stessi argomenti e le stesse unità. A differenza di Excel, Google Sheets la elenca anche nella guida delle funzioni.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA