Anónimo
Hola a todos,
Creé una columna para calcular la edad en meses. Sin embargo, Power BI no tiene en cuenta la fecha de hoy. Por ejemplo, Power BI dice que la persona nacida el 17 de diciembre de 2019 tiene 3 meses, mientras que debería decir 2 meses.
Usé la siguiente fórmula para la columna:
vivran22
Hola @Anónimo,
DAX está redondeando los valores del mes. Por ejemplo, la fecha de nacimiento del 19 de enero de 2020 es 1,78 meses, por lo que muestra el valor como 2 meses.
Puede modificar su cálculo:
Age (cc) =
ROUNDDOWN(
DIVIDE(
DATEDIFF('Table'[DOB],TODAY(),DAY),
30.4)
,0
)
¡Salud!
Vivek
Si ayuda, márquelo como una solución.
Felicitaciones sería una cereza en la cima 🙂
https://www.vivran.in/
Conectarse en LinkedIn
vivran22
Hola @Anónimo,
DAX está redondeando los valores del mes. Por ejemplo, la fecha de nacimiento del 19 de enero de 2020 es 1,78 meses, por lo que muestra el valor como 2 meses.
Puede modificar su cálculo:
Age (cc) =
ROUNDDOWN(
DIVIDE(
DATEDIFF('Table'[DOB],TODAY(),DAY),
30.4)
,0
)
¡Salud!
Vivek
Si ayuda, márquelo como una solución.
Felicitaciones sería una cereza en la cima 🙂
https://www.vivran.in/
Conectarse en LinkedIn
MoOv
En respuesta a vivran22
Como esta solución funciona con el promedio la duración del mes y no la duración real del mes, no devuelve los resultados esperados en meses cortos. Ejemplo: Fecha de nacimiento: = 1 de abril de 2020, hoy: = 1 de mayo de 2020. Luego, DATEDIFF en días es 30. Dividido por 30,4 y redondeado hacia abajo, el resultado es 0, no 1 como cabría esperar y probablemente desee que se muestre la medida. Más aún si el DOB es en febrero.
Este podría ser el comportamiento deseado en algunos casos, pero uno realmente debe ser consciente de ello, ya que no se muestra a primera vista.
Editar nota: ejemplo corregido.
Anónimo
En respuesta a vivran22
Hola @ vivran22, ¡gracias! Los felicitaciones están bien desechados
MoOv
DATEDIFF devuelve el recuento de límites de intervalo entre fechas (cf. https://docs.microsoft.com/de-de/dax/datediff-function-dax). En su ejemplo, hay un límite entre diciembre y enero, enero y febrero, y febrero y marzo, lo que da como resultado un recuento de 3. Debe tener en cuenta el día, ya que solo desea contar los meses «completos». Si la parte DÍA de hoy es mayor o igual que la parte DÍA de la fecha de nacimiento, desea contar todos los límites; si no es así, desea reducir este número en 1. Pruebe esto:
SI (Fecha de nacimiento <= CurrentMonth; NumberOfMonths; NumberOfMonths - 1)
Por cierto: es posible que desee cambiar el nombre de la variable «CurrentMonth», este nombre es un poco confuso. Quizás en DayCurrentMonth o algo similar.
Saludos