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:
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.
v-chuncz-msft
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.