Forum Discussion
Problema de DateDiff de DAX
Hola
Este post está relacionado con DateDiff, Fechas y YearFrac. No soy capaz de encontrar una solución para este desafío.
He estado mirando muchas otras publicaciones y muchas de ellas están hablando de columnas, y entiendo totalmente esa solución, pero estoy cayendo en hacer algo diferente ya que estoy usando conexiones en vivo en mi modelo, y no puedo agregar columnas a la tabla de datos de la que extrago.
Por ejemplo, tengo columnas de datos que quiero usar para calcular su antigüedad desde su fecha de nacimiento (dob) hasta una fecha específica, solo con una medida de DAX.
El dob es una columna de jerarquía de fecha, con Year, Quarter, Month y Day en ella.
Así es como se ve:
Si decido verlo como un valor, se ve así:
Como el año en el ejemplo anterior es el 1 de agosto de 1883, lo que estoy buscando hacer es calcular la edad en que el siglo se convirtió en 1/1/1900 (en este momento serían 16).
La fórmula que he estado tratando de usar es: DateDiff(Date1, Date2, Year), pero Date1 ni Date 2 no encontrarán el campo dob ya creado. YearFrac tampoco funciona, ya que no puede encontrar la variable.
El desafío que tengo, es que tengo alrededor de 3000 registros con fechas para las que estoy tratando de usar esta fórmula, y lo que estoy tratando de averiguar es la edad promedio (con 2 decimales) para todos los registros. Sería genial crear otra columna, pero eso no funcionará con el conjunto de datos. Idealmente, usaría la fórmula DAX y luego promediaría todos los resultados, pero no estoy completamente seguro de cómo pensarlo.
Idealmente (y sé que esto no funcionaría), sería hacer esto: DATEDIFF(DOB, DATE(1900, 1, 1), YEAR).
Me encantaría escuchar sus consejos y gracias por su tiempo.
Saludos
Fredrik
Hey @fleuhusen ,
si está creando una medida, tiene que ajustar la referencia a la columna DOB en una función de agregación, algo como esto:
DATEDIFF(MIN('tablename'[DOB]), DATE(1900, 1, 1), YEAR)Por supuesto, debe elegir la función de agregación adecuada 🙂 pero así es como funcionan las medidas.
saludos
gato
3 Replies
- Syndicate_AdminAdministrator
Hey @fleuhusen ,
intente usar esta instrucción DAX:
DATEDIFF('tablename'[DOB], DATE(1900, 1, 1), YEAR)Con suerte, esto proporciona lo que está buscando.
saludos
gato
- Syndicate_AdminAdministrator
Gracias @TomMartens . El desafío que surge es que la columna DoB no aparece como una opción para la fórmula DateDiff. La fórmula DateDiff solo ve otras medidas creadas y no hay nombres de columna. El desafío es que la columna tiene varios valores.
Utilicé tu fórmula:
Medida 3 dob test= DATEDIFF('TableName'[dob], DATE(1900,1,1),YEAR) - Syndicate_AdminAdministrator
Hey @fleuhusen ,
si está creando una medida, tiene que ajustar la referencia a la columna DOB en una función de agregación, algo como esto:
DATEDIFF(MIN('tablename'[DOB]), DATE(1900, 1, 1), YEAR)Por supuesto, debe elegir la función de agregación adecuada 🙂 pero así es como funcionan las medidas.
saludos
gato