Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Quiero crear una tabla con una lista de nombres en la primera columna y 1 columna, cada una representando los resultados semanales de un operador.
Sin embargo, las fechas de inicio serán diferentes para algunos operadores.
Por ejemplo
Nombre de AgentID Fecha de inicio
ou812 Alguien 1 25/09/2023
ou813 Alguien 2 25/09/2023
ou814 Alguien 3 25/09/2023
ou815 Alguien 4 25/09/2023
ou816 Alguien 5 25/09/2023
ou817 Alguien 6 27/11/2023
ou818 Alguien 7 8/01/2024
He creado una medida para los resultados del operador.
Mi pensamiento es que debería poder filtrar en función de la fecha de inicio y el bucle agregando 7 a la fecha de inicio cada vez y obteniendo el resultado de la fecha de inicio + 5 (de lunes a viernes) Pero Dax no tiene bucle.
crear de manera efectiva una lista de resultados semanales de forma dinámica
Week 1 AHT = CALCULATE([Total AHT], DATESBETWEEN('date table'[Date], Staff[Start date], Staff[Start date]+7))
Week 1 AHT = CALCULATE([Total AHT], DATESBETWEEN('date table'[Date]+ 7, Staff[Start date], Staff[Start date]+14))
En DAX, de hecho, no se pueden usar construcciones de bucle tradicionales como en los lenguajes de programación procedimental. En su lugar, puede lograr un resultado similar mediante la creación de una serie de medidas que calculen los valores de forma condicional en función de la fecha de inicio y el contexto actual del informe o objeto visual.
Sin embargo, para comparar fechas y calcular los resultados semanales, tendremos que asegurarnos de que la tabla 'Staff' y la 'tabla de fechas' estén correctamente relacionadas en el modelo. A continuación, le indicamos cómo puede calcular los resultados semanales a partir de la fecha de inicio de cada miembro del personal:
1. Asegúrese de tener una "tabla de fechas" que cubra todas las fechas de su rango y que esté marcada como una tabla de fechas en su modelo.
2. Establezca una relación entre la tabla "Personal" y la "tabla de fechas" en las columnas de fechas.
3. En su tabla 'Personal', agregue una columna calculada para determinar el número de semana desde la fecha de inicio para cada fecha en su 'tabla de fechas'.
Week Number Since Start =
INT(( 'date table'[Date] - Staff[Start date] ) / 7)
4. Deberá crear medidas individuales para el AHT de cada semana en función del 'Número de semana desde el inicio'. A continuación, te explicamos cómo puedes escribir la medida de la semana 1:
Week 1 AHT =
CALCULATE(
[Total AHT],
FILTER(
ALL('date table'),
'date table'[Date] >= MIN(Staff[Start date])
&& 'date table'[Date] < MIN(Staff[Start date]) + 7
),
REMOVEFILTERS(Staff)
)
5. Copie la medida y ajústela para las semanas siguientes cambiando la ventana de la semana:
Week 2 AHT =
CALCULATE(
[Total AHT],
FILTER(
ALL('date table'),
'date table'[Date] >= MIN(Staff[Start date]) + 7
&& 'date table'[Date] < MIN(Staff[Start date]) + 14
),
REMOVEFILTERS(Staff)
)
Siguiendo estos pasos, tendrá un conjunto de medidas que se pueden usar en sus informes para mostrar resultados semanales basados en la fecha de inicio de cada miembro del personal. Puede seguir creando este tipo de medidas durante tantas semanas como sea necesario.
Este enfoque requiere la creación de varias medidas, y puede ser engorroso si se tienen muchas semanas para cubrir. Un enfoque alternativo para una solución más dinámica podría ser usar las funciones de inteligencia de tiempo integradas de Power BI en combinación con columnas calculadas o escribir código DAX más complejo mediante "SUMMARIZE" y otras funciones para crear una tabla de resumen dinámicamente dentro de una medida.
Recuerde que, si tiene diferentes fechas de inicio y necesita que las semanas sean relativas a la fecha de inicio de cada individuo, el uso de 'REMOVEFILTERS(Staff)' permite que el cálculo tenga en cuenta la fecha de inicio de cada miembro del personal sin verse afectado por el contexto de la fila en la tabla 'Staff'.
Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Aprecia tu Kudo 👍
Hola
Gracias por la respuesta detallada.
La primera medida no funciona, ya que no puede determinar qué 'tabla de fechas' [Date] usar, ya que no hay agregación.
Week Number Since Start = INT(( 'date table'[Date] - Staff[Start date] ) / 7)
Lo cual tiene sentido, creo, ya que hay meses de fechas que cubren todas las fechas de inicio, Dax no puede determinar cuál usar.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |