Fórmula de Excel: Obtener la edad desde el cumpleaños -

Tabla de contenido

Fórmula genérica

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

Resumen

Para calcular la edad a partir de una fecha de nacimiento, puede utilizar la función SIFECHA junto con la función HOY. En el ejemplo que se muestra, la fórmula en la celda E5, copiada, es:

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

Como TODAY siempre devuelve la fecha actual, la fórmula seguirá calculando la edad correcta en el futuro.

Explicación

La función DATEDIF (Date + Dif) es una anomalía en Excel. Una función de compatibilidad que proviene originalmente de Lotus 1-2-3, Excel no ayudará a proporcionar argumentos cuando se ingrese la función. Sin embargo, DATEDIF funciona en todas las versiones modernas de Excel y es una función útil para calcular el intervalo entre dos fechas en años, meses y días.

En el ejemplo que se muestra, el objetivo es calcular la edad en años. La fórmula en E5 es:

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

Los dos primeros argumentos para DATEDIF son start_date y end_date. La fecha de inicio proviene de la celda D5 (15 de mayo de 2001) en el ejemplo. La fecha de finalización se genera con la función HOY. HOY siempre devuelve la fecha actual en Excel. En el momento de escribir este artículo, la fecha actual es el 24 de noviembre de 2020. El último argumento en DATEDIF especifica la unidad de tiempo. La función DATEDIF admite varias opciones aquí, pero para este ejemplo el objetivo es la edad en años completos, por lo que usamos "y" para especificar años completos.

En este punto, podemos reescribir la fórmula de la siguiente manera:

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

Debido a que las fechas de Excel son en realidad números de serie, los valores brutos son:

=DATEDIF(37026,44159,"y")

Con estas entradas, DATEDIF devuelve 19 como resultado final.

Edad en fecha específica

Para calcular la edad en una fecha específica, reemplace la función HOY por la fecha objetivo. Una forma fácil y segura de codificar una fecha específica en una fórmula es usar la función FECHA. Por ejemplo, para calcular la edad al 1 de enero de 2021, puede usar una fórmula como esta:

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

Esta fórmula devolverá la edad de Michael Chang el 1 de enero de 2022, que es 20.

Adulto o menor

Para verificar una fecha de nacimiento y devolver "Menor" o "Adulto", puede envolver la fórmula en la función SI así:

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

La fórmula anterior es un ejemplo de anidamiento. Reemplace 18 con la edad apropiada.

Edad en años, meses y días

Para calcular la edad en años, meses y días, use tres instancias de DATEDIF como esta:

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

La primera instancia de DATEDIF devuelve años, la segunda instancia devuelve meses y la tercera instancia devuelve días. Este es un ejemplo de concatenación y el resultado es una cadena de texto como esta:

19y 6m 9d

Tenga en cuenta que las fechas de inicio y finalización siguen siendo las mismas en los tres DATEDIF; sólo se cambia la unidad.

YEARFRAC con INT

Otra opción para calcular la edad a partir de la fecha de nacimiento usa la función YEARFRAC junto con la función INT en una fórmula como esta:

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

YEARFRAC calcula un número decimal que representa la fracción de un año entre dos fechas. Para calcular la fracción de un año como valor decimal, Excel usa días entre dos fechas. Como se indicó anteriormente, la fecha de nacimiento se proporciona como fecha de inicio de la celda D5, y la fecha de hoy se proporciona como fecha de finalización, cortesía de la función HOY.

Con una fecha actual del 24 de noviembre de 2020, el resultado de YEARFRAC para Michael Chang es:

19.5290896646133

A continuación, la función INT toma el control y redondea ese número al valor entero, que es el número 19.

=INT(19.5290896646133) // returns 19

Esta fórmula parece perfectamente lógica y funciona bien en la mayoría de los casos. Sin embargo, YEARFRAC puede devolver un número que no sea correcto en las fechas de aniversario (cumpleaños). No estoy seguro exactamente de por qué sucede esto, pero está relacionado con la forma en que YEARFRAC usa los días para determinar los años fraccionarios, lo cual está controlado por el argumento base. Por ejemplo:

=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 conclusión es que la fórmula de fecha DATEDIF es una opción más segura y fácil cuando el objetivo es informar la edad en años completos.

Articulos interesantes...