Cómo calcular la edad en años desde la fecha de nacimiento

Un usuario Pregunto ✅

Chris_C

Tengo una columna de fecha de nacimiento llamada DOB y estoy usando el siguiente cálculo para obtener la edad:

CustAge = DATEDIFF ([DOB], HOY (), AÑO)

Sin embargo, en algunos casos me está dando una respuesta incorrecta. Por ejemplo, para alguien nacido el 30/12/1999, la edad se devuelve como 18, donde obviamente debería ser 17, ya que la fecha de hoy es el 09/09/2017.

¿Alguien sabe por qué obtengo la respuesta incorrecta o si hay un cálculo alternativo mejor?

Gracias

TomMartens

Oye,

desde mi punto de vista, este hilo proporciona la mejor solución:

https://community.powerbi.com/t5/Desktop/Age-and-Age-intervals-3-questions/td-p/27293

Saludos

Tomás

PaulDBrown

EDITAR: ignore esto. Veo que este mismo método estaba dentro del hilo publicado como solución.

¿No puede acceder a Power Query? hay una función en la cinta para calcular la edad. Duplica la columna de cumpleaños y luego:

Agefunct.jpgAge.jpgFinañ.JPG

Romain_FOURNIER

En respuesta a PaulDBrown

Gracias Chris por tu útil respuesta.

De hecho, muchas de mis imágenes ya usan el campo que creé mediante el algoritmo de 8 dígitos.

Me hubiera gustado :

→ sus funciones de Edad / Duraciones también en PB Desktop;

→ El mismo comportamiento para la función DAX DateDiff que la función Excel DateDif.

Aunque gracias por tu capacidad de respuesta 🙂 !

PaulDBrown

En respuesta a Romain_FOURNIER

@Romain_FOURNIER

Re: «→ sus funciones de Edad / Duraciones también en PB Desktop «

Las funciones de edad / duración mostradas son desde PBI Desktop (simplemente inicie Power Query)

Romain_FOURNIER

Para calcular la edad real en una fecha determinada, la función DateDiff DAX devuelve:

→ no es la edad real en una fecha determinada (como la función DateDif Excel)

pero

→ la fecha al final del año de la fecha dada (al contrario de la función DateDif Excel)

En consecuencia, la función DAX no es apropiada.

Personalmente, utilicé el siguiente algoritmo:

https: //www.sqlbi.com/blog/marco/2018/06/24/correct-calculate-of-age-in-dax-from-birthday/#: ~: text = I …

La idea es convertir temporalmente año, mes y día de la fecha respectivamente en 8 dígitos.

stavrospontikis

Hay una forma aún más fácil, simplemente vaya a la consulta de potencia, haga clic en la pestaña «Transoforma» y en la sección «Columna numérica» ​​hay una función llamada «Redondeo», seleccione la que sea adecuada para usted.

Gracias,

Stavros

arneschram

Utilizo este cálculo basado en el cálculo de T-SQL (dateiff no está disponible en mi versión DAX del)

= (AÑO (HOY ()) – AÑO (Empleado[Birthday])) – SI (O (MES (Empleado[Birthday])> MES (HOY ()); Y (MES (Empleado[Birthday]) = MES (HOY ()); DÍA (Empleado[Birthday])> DÍA (HOY ()))); 1; 0)

TomMartens

Oye,

desde mi punto de vista, este hilo proporciona la mejor solución:

https://community.powerbi.com/t5/Desktop/Age-and-Age-intervals-3-questions/td-p/27293

Saludos

Tomás

Chris_C

En respuesta a TomMartens

Muchas gracias por su ayuda. Resolví el problema usando:

CustAge = PISO (DATEDIFF ([DOB], HOY (), DÍA) / 365.25, 1)

La solución que sugería usar el redondeo a través de la pestaña Transformar no parece ser posible en la versión actual de Power BI Desktop, es decir, la pestaña Transformar ya no existe.

En respuesta a Chris_C

@Chris_C,

Me alegra saber que ha resuelto este problema. Puede ayudar a aceptar la solución. De esa forma, otros miembros de la comunidad también pueden beneficiarse. Su contribución es muy apreciada.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *