=DATA.DIFF(B2;OGGI();"Y") restituisce l'età in anni compiuti di chi è nato alla data in B2. DATA.DIFF (in inglese DATEDIF) conta gli anni interi tra due date, e OGGI() (in inglese TODAY()) fornisce la seconda data, quindi l'età aumenta di uno a ogni compleanno. La tabella mostra le formule in inglese, ma puoi scriverle anche in italiano, con il punto e virgola: =DATA.DIFF(B2;OGGI();"Y").
| A | B | C | |
|---|---|---|---|
| 1 | Name | Born | Age |
| 2 | Ana | 1990-05-14 | 36 |
| 3 | Ben | 1985-11-30 | 40 |
| 4 | Chloe | 2001-02-28 | 25 |
| 5 | Dan | 1978-10-10 | 47 |
| 6 | Eva | 2010-07-04 | 16 |
=DATA.DIFF(B2;OGGI();"Y")Le età della colonna C sono calcolate a partire dalla data di oggi, quindi cambiano nel corso dell'anno. Cambia una data di nascita nella colonna B e l'età accanto la segue. La formula ha tre argomenti: la data di inizio (la data di nascita), la data di fine (oggi) e l'unità, "Y" per gli anni compiuti.
Età a una data precisa
Per avere l'età in un giorno fisso, come l'inizio dell'anno scolastico o la data di un contratto, metti quel giorno in una cella e usa la cella al posto di OGGI(). Il $ in $F$2 tiene il riferimento su F2 quando la formula viene copiata verso il basso.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Born | Age | As of | ||
| 2 | Ana | 1990-05-14 | 36 | 2026-10-01 | ||
| 3 | Ben | 1985-11-30 | 40 | |||
| 4 | Chloe | 2001-02-28 | 25 | |||
| 5 | Dan | 1978-10-10 | 47 | |||
| 6 | Eva | 2010-07-04 | 16 |
=DATA.DIFF(B2;$F$2;"Y")Al 2026-10-01 Ana ha 36 anni e Dan 47: il suo compleanno del 10 ottobre non è ancora arrivato. Cambia F2 in 2026-10-10 e Dan compie 48 anni. Questa versione dà anche lo stesso risultato ogni volta che apri il file, e conta quando l'età finisce in un report. Vedi la pagina su DATA.DIFF per le altre unità.
Età in anni, mesi e giorni
DATA.DIFF ha unità per le parti che restano dopo gli anni interi: "YM" conta i mesi dopo l'ultimo anno intero, e "MD" i giorni dopo l'ultimo mese intero. Unisci le tre con & per scrivere l'età come testo.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Born | Years | Months | Days | Age | As of |
| 2 | 1990-05-14 | 36 | 4 | 17 | 36 years, 4 months, 17 days | 2026-10-01 |
| 3 | 1978-10-10 | 47 | 11 | 21 | 47 years, 11 months, 21 days |
=B2&" years, "&C2&" months, "&D2&" days"Dal 1990-05-14 al 2026-10-01 ci sono 36 anni, 4 mesi e 17 giorni. Microsoft sconsiglia l'unità "MD" perché in alcuni casi può restituire un numero di giorni negativo o sbagliato, per esempio con una data di nascita il 31. Controlla il numero dei giorni quando una data di nascita cade tra il 29 e il 31.
Calcolare l'età senza DATA.DIFF
DATA.DIFF funziona in ogni versione di Excel ma non compare nell'elenco delle funzioni né nel completamento automatico delle formule, quindi alcuni preferiscono FRAZIONE.ANNO (in inglese YEARFRAC). FRAZIONE.ANNO(inizio;fine;1) restituisce gli anni tra due date come decimale, contando la lunghezza reale di ogni anno (base 1). INT elimina la parte decimale.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Born | As of | DATEDIF | YEARFRAC |
| 2 | 1990-05-14 | 2026-10-01 | 36 | 36 |
| 3 | 1978-10-10 | 2026-10-01 | 47 | 47 |
| 4 | 2010-07-04 | 2026-10-01 | 16 | 16 |
=INT(FRAZIONE.ANNO(A2;B2;1))Le due colonne coincidono: 36, 47 e 16. Senza INT, FRAZIONE.ANNO per l'ultima riga restituisce circa 16,24, utile quando ti serve l'età come decimale, per esempio in un foglio di statistica.
Perché non dividere per 365
Una scorciatoia comune è =INT((F2-B2)/365): i giorni vissuti divisi per i giorni di un anno. Gli anni bisestili aggiungono un giorno ogni quattro anni, quindi dopo qualche decennio la formula arriva all'età successiva giorni prima del compleanno: 12 giorni prima per il 48° compleanno.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Born | As of | Days lived | Divide by 365 | DATEDIF |
| 2 | 1990-05-14 | 2026-10-01 | 13289 | 36 | 36 |
| 3 | 1978-10-10 | 2026-10-01 | 17523 | 48 | 47 |
=INT(C2/365)Per la persona nata il 1978-10-10, dividere per 365 dà 48 anni al 2026-10-01, nove giorni prima del 48° compleanno. DATA.DIFF dice 47. Dividere per 365,25 corregge la maggior parte delle righe ma sbaglia ancora in alcune date, quindi usa DATA.DIFF o FRAZIONE.ANNO.
Esercizio: età al primo giorno di scuola
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Born | Age | As of | |
| 2 | Ana | 2012-04-17 | 2026-09-01 |
Tocca a te: In C2, calcola l'età di Ana in anni compiuti alla data in E2.
I controlli nascosti cambiano la data in E2, quindi la formula deve leggerla.
Perché l'età appare come una data
Se scrivi la formula dell'età in una cella che contiene già una data, o in una colonna formattata come date, Excel mantiene il formato data e mostra 36 come 1900-02-05 (il giorno 36 del sistema di date di Excel; con le impostazioni italiane si legge 05/02/1900). Il numero sottostante è giusto. Seleziona le celle e scegli Home > Formato numero > Generale (oppure premi Ctrl+Maiusc+~, Control+Maiusc+~ su Mac) e appare l'età.
Domande frequenti
Qual è la formula per calcolare l'età in Excel?
=DATA.DIFF(B2;OGGI();"Y"), con la data di nascita in B2. Conta gli anni interi dalla data di nascita a oggi, quindi l'età aumenta il giorno del compleanno, non prima.
Come si calcola l'età a una data precisa in Excel?
Metti la data in una cella e usala al posto di OGGI(): =DATA.DIFF(B2;$F$2;"Y") dà l'età alla data in F2. I segni $ tengono fisso F2 quando copi la formula verso il basso.
Come si calcola l'età in Excel senza DATA.DIFF?
Usa =INT(FRAZIONE.ANNO(B2;OGGI();1)). FRAZIONE.ANNO restituisce gli anni tra le due date come decimale, e INT tiene gli anni interi.
Perché la mia formula dell'età mostra una data come 1900-01-30?
La cella è formattata come data, quindi l'età 30 viene mostrata come giorno 30 del calendario di Excel. Seleziona la cella e imposta Home > Formato numero su Generale.
Perché dividere per 365 è sbagliato per l'età?
Gli anni bisestili aggiungono un giorno ogni quattro anni, quindi =INT((OGGI()-B2)/365) conta il compleanno con qualche giorno di anticipo: chi è nato il 10/10/1978 ha 48 anni secondo quella formula già l'1/10/2026, nove giorni prima di compierli. DATA.DIFF conta gli anni di calendario e non ha questo errore.