Formula Excel: calcola l'età dal compleanno -

Sommario

Formula generica

=DATEDIF(birthdate,TODAY(),"y")

Sommario

Per calcolare l'età da una data di nascita, è possibile utilizzare la funzione DATEDIF insieme alla funzione TODAY. Nell'esempio mostrato, la formula nella cella E5, copiata verso il basso, è:

=DATEDIF(D5,TODAY(),"y")

Poiché OGGI restituisce sempre la data corrente, la formula continuerà a calcolare l'età corretta in futuro.

Spiegazione

La funzione DATEDIF (Data + Dif) è un po 'un'anomalia in Excel. Una funzione di compatibilità che proviene originariamente da Lotus 1-2-3, Excel non aiuterà a fornire argomenti quando la funzione viene immessa. Tuttavia, DATEDIF funziona in tutte le versioni moderne di Excel ed è una funzione utile per calcolare l'intervallo tra due date in anni, mesi e giorni.

Nell'esempio mostrato, l'obiettivo è calcolare l'età in anni. La formula in E5 è:

=DATEDIF(D5,TODAY(),"y")

I primi due argomenti per DATEDIF sono data_inizio e data_fine. La data di inizio viene dalla cella D5 (15 maggio 2001) nell'esempio. La data di fine viene generata con la funzione TODAY. OGGI restituisce sempre la data corrente in Excel. Al momento della stesura di questo documento, la data corrente è il 24 novembre 2020. L'ultimo argomento in DATEDIF specifica l'unità di tempo. La funzione DATEDIF supporta diverse opzioni qui, ma per questo esempio l'obiettivo è l'età in anni interi, quindi usiamo "y" per specificare anni completi.

A questo punto, possiamo riscrivere la formula come di seguito:

=DATEDIF("15-May-2001","24-Nov-2020", "y")

Poiché le date di Excel sono in realtà numeri di serie, i valori non elaborati sono:

=DATEDIF(37026,44159,"y")

Con questi input, DATEDIF restituisce 19 come risultato finale.

Età alla data specifica

Per calcolare l'età in una data specifica, sostituire la funzione OGGI con la data di destinazione. Un modo semplice e sicuro per codificare una data specifica in una formula è utilizzare la funzione DATA. Ad esempio, per calcolare l'età a partire dal 1 gennaio 2021, puoi utilizzare una formula come questa:

=DATEDIF(D5,DATE(2022,1,1),"y") // returns 20

Questa formula restituirà l'età di Michael Chang il 1 ° gennaio 2022, che è 20.

Adulto o minorenne

Per controllare una data di nascita e restituire "Minor" o "Adult", puoi racchiudere la formula nella funzione IF in questo modo:

=IF(DATEDIF(D5,TODAY(),"y")<18,"Minor","Adult")

La formula sopra è un esempio di nidificazione. Sostituisci 18 con qualsiasi età sia appropriata.

Età in anni, mesi e giorni

Per calcolare l'età in anni, mesi e giorni, utilizza tre istanze di DATEDIF in questo modo:

=DATEDIF(A1,TODAY(),"y")&"y "&DATEDIF(A1,TODAY(),"ym")&"m "&DATEDIF(A1,TODAY(),"md")&"d"

La prima istanza di DATEDIF restituisce anni, la seconda istanza restituisce mesi e la terza istanza restituisce giorni. Questo è un esempio di concatenazione e il risultato è una stringa di testo come questa:

19y 6m 9d

Nota le date di inizio e di fine rimangono le stesse in tutti e tre i DATEDIF; viene cambiata solo l'unità.

YEARFRAC con INT

Un'altra opzione per il calcolo dell'età dalla data di nascita utilizza la funzione ANNO FRAC insieme alla funzione INT in una formula come questa:

=INT(YEARFRAC(D5,TODAY()))

YEARFRAC calcola un numero decimale che rappresenta la frazione di un anno tra due date. Per calcolare la frazione di anno come valore decimale, Excel utilizza i giorni tra due date. Come sopra, la data di nascita viene fornita come data_inizio dalla cella D5 e la data odierna viene fornita come data_fine, per gentile concessione della funzione TODAY.

Con una data corrente del 24 novembre 2020, il risultato di YEARFRAC per Michael Chang è:

19.5290896646133

Successivamente, la funzione INT prende il sopravvento e arrotonda quel numero al valore intero, che è il numero 19.

=INT(19.5290896646133) // returns 19

Questa formula sembra perfettamente logica e funziona bene nella maggior parte dei casi. Tuttavia, YEARFRAC può restituire un numero non corretto nelle date dell'anniversario (compleanni). Non sono sicuro del motivo per cui ciò accada, ma è correlato al modo in cui YEARFRAC utilizza i giorni per determinare gli anni frazionari, che è controllato dall'argomento di base. Per esempio:

=YEARFRAC(DATE(1960,6,30),DATE(1962,6,30),1) // 1.998, should be 2 =YEARFRAC(DATE(1960,3,3),DATE(1964,3,3),1) // 3.998, should be 4

La linea di fondo è che la formula della data DATEDIF è un'opzione più sicura e più facile quando l'obiettivo è riportare l'età in anni interi.

Articoli interessanti...