=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").
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Start | End | Unit | Result | |
| 2 | 2024-04-15 | 2026-09-10 | Y | 2 | |
| 3 | M | 28 | |||
| 4 | D | 878 | |||
| 5 | YM | 4 | |||
| 6 | MD | 26 | |||
| 7 | YD | 148 |
=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à | Conta | Dal 2024-04-15 al 2026-09-10 |
|---|---|---|
"Y" | anni interi | 2 |
"M" | mesi interi | 28 |
"D" | giorni | 878 |
"YM" | mesi dopo l'ultimo anno intero | 4 |
"MD" | giorni dopo l'ultimo mese intero | 26 |
"YD" | giorni dopo l'ultimo anno intero | 148 |
"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).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | Full months | Decimal months |
| 2 | 2025-03-10 | 2026-01-05 | 9 | 9.8 |
| 3 | 2024-04-15 | 2026-09-10 | 28 | 28.8 |
| 4 | 2026-01-31 | 2026-02-28 | 0 | 0.9 |
| 5 | 2025-11-01 | 2026-05-01 | 6 | 6.0 |
=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.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Hired | Years | Months | Days | Service | As of |
| 2 | 2019-06-03 | 7 | 3 | 27 | 7y 3m 27d | 2026-09-30 |
| 3 | 2023-11-20 | 2 | 10 | 10 | 2y 10m 10d |
=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.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | DATEDIF | With MIN and MAX |
| 2 | 2026-03-10 | 2026-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.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | End | MD | D |
| 2 | 2026-01-31 | 2026-03-01 | -2 | 29 |
=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
| A | B | C | |
|---|---|---|---|
| 1 | Start | End | Months |
| 2 | 2025-03-10 | 2026-01-05 |
Tocca a te: In C2, conta i mesi interi tra la data di inizio in A2 e la data di fine in B2.
| A | B | C | |
|---|---|---|---|
| 1 | Date 1 | Date 2 | Days |
| 2 | 2026-04-18 | 2026-02-01 |
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.