Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
Syndicate_Admin
Administrator
Administrator

Resultados semanales basados en diferentes fechas de inicio

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

Traté de crear una medida solo para la 1ª semana y partir de ahí. Sin embargo, la fecha de inicio no se puede determinar porque no he proporcionado la agregación. Lo cual no quiero agragreagte, quiero hacer un bucle. Simplemente no puedo averiguar cómo filtrar por cada persona en función de la fecha de inicio y luego aumentar la fecha de inicio

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))

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@HankScorpio

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.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors