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.
Hola
Tengo un gráfico que tiene una columna para un valor diario de variables y una línea para el valor semanal. El gráfico traza 6 semanas de datos hasta la semana seleccionada en una segmentación de datos (utilizando un grupo de calulación a continuación). Los datos diarios se agregan al conjunto de datos. Cuando se selecciona una semana histórica, esto funciona perfectamente como se muestra aquí:
Por alguna razón, cuando se selecciona la semana actual, y solo hay un par de días de datos en la semana actual, el promedio semanal calcula para todas las fechas al comienzo de la tabla de fechas. Como se muestra aquí:
Mi fórmula promedio semanal está aquí:
weekly average =
VAR currentw =
MAX ( date_table[WeekOffset] )
VAR enddate =
CALCULATE ( MAX ( 'Previous Dates'[Date] ), ALLSELECTED ( 'Previous Dates' ) )
VAR startdate =
CALCULATE ( MIN ( 'Previous Dates'[Date] ), ALLSELECTED ( 'Previous Dates' ) )
VAR period =
DATESBETWEEN ( date_table[Date], startdate, enddate )
VAR result =
CALCULATE (
[Measure],
FILTER ( ALL ( date_table ), date_table[WeekOffset] = currentw ),
period
)
RETURN
result
He usado una tabla de fechas secundaria ('fechas anteriores') con un grupo de calulación para mostrar las 6 semanas hasta la semana seleccionada. El código está a continuación.
VAR NumDays = -42
VAR endw =
MAX ( date_table[Date] )
VAR previousdates =
DATESINPERIOD ( 'Previous Dates'[Date], endw, NumDays, DAY )
VAR result =
CALCULATE (
selectedmeasure(),
REMOVEFILTERS ( date_table ),
KEEPFILTERS ( previousdates ),
USERELATIONSHIP ( date_table[Date], 'Previous Dates'[Date] )
)
RETURN
result
Para ayudar a depurar el problema, creé una tabla e imprimí la primera fecha y la última fecha de la variable de período, así como el resultado aquí.
Código:
Parece que el período tiene las fechas correctas en (6 semanas a la semana seleccionada), sin embargo, ha evaluado la medida para fechas anteriores a más de un año. Esto solo sucede al seleccionar la semana actual cuando solo tiene un par de días de datos (es decir, seleccionarla un lunes / martes)
¿Alguien sabe por qué está sucediendo esto, por favor?
Gracias de antemano,
Charlie
@amitchandak - gracias, pero esta no es la parte con la que tengo un problema. Mi enfoque es similar a su clasificación (yo lo llamo compensación). Sin embargo, lo que estoy tratando de entender es por qué esto evalúa para toda la tabla de fechas cuando tengo la semana actual seleccionada (y no hay muchos datos en la semana actual). Esto funciona bien cuando selecciono cualquier semana anterior.
Gracias
Tal vez una forma más clara de mostrar el problema.
Tengo una medida:
Last 6 weeks Weekly Average =
VAR NumDays = -42
VAR endw =
MAX ( date_table[Date] )
VAR previousdates =
DATESINPERIOD ( 'Previous Dates'[Date], endw, NumDays, DAY )
VAR result =
CALCULATE (
[MPS (weekly average)],
REMOVEFILTERS ( date_table ),
KEEPFILTERS ( previousdates ),
USERELATIONSHIP ( date_table[Date], 'Previous Dates'[Date] )
)
RETURN
result
Esto llama a la medida:
MPS (weekly average) =
VAR currentw =
MAX ( date_table[WeekOffset] )
VAR enddate =
CALCULATE ( MAX ( 'Previous Dates'[Date] ), ALLSELECTED ( 'Previous Dates' ) )
VAR startdate =
CALCULATE ( MIN ( 'Previous Dates'[Date] ), ALLSELECTED ( 'Previous Dates' ) )
VAR period =
DATESBETWEEN ( date_table[Date], startdate, enddate )
VAR result =
CALCULATE (
[M_MPS (Chapter)],
FILTER ( ALL ( date_table ), date_table[WeekOffset] = currentw ),
period
)
RETURN
result
Esto funciona para mostrarme el promedio semanal de las 6 semanas hasta la fecha seleccionada en la segmentación de datos para todas las selecciones de segmentación de datos, excepto al seleccionar la semana actual.
@cbailey1994 , normalmente uso la columna de rango de la semana
Rango de la semana = RANKX(all('Date'),'Date'[Fecha de inicio de la semana],,ASC,Dense)
O
Rango de semana RANKX(all('Date'),'Date'[Year Week],,ASC,Dense) //YYYYWW format
Puedes obtener 6 semanas
Últimas 6 semanas = CALCULATE(sum('Tabla'[Cantidad]), FILTER(ALL('Fecha'),'Fecha'[Rango de la semana]>=max('Fecha'[Rango de la semana])-6 && 'Fecha'[Rango de la semana]<=max('Fecha'[Rango de la semana])))
Promedio de las últimas 6 semanas = CALCULAR(Averagex(Valores('Fecha'[Rango de la semana]), [pedidos]) , FILTRO(TODOS('Fecha'),'Fecha'[Rango de la semana]>=max('Fecha'[Rango de la semana])-6 && 'Fecha'[Rango de la semana]<=max('Fecha'[Rango de la semana])))
Power BI — Semana tras semana y DMT
https://medium.com/@amitchandak.1978/power-bi-wtd-questions-time-intelligence-4-5-98c30fab69d3
https://community.powerbi.com/t5/Community-Blog/Week-Is-Not-So-Weak-WTD-Last-WTD-and-This-Week-vs-La...
https://www.youtube.com/watch?v=pnAesWxYgJ8
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 |