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

La gráfica promedio semanal se extiende a la tabla de inicio de fecha

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í:

cbailey1994_0-1670411126205.png


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í:

cbailey1994_1-1670411150936.png

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:

PRIMERA CITA(periodo)&"/-/"&LASTDATE(periodo)&"/-/"&resultado

cbailey1994_2-1670412915227.png

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

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@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.

Syndicate_Admin
Administrator
Administrator

@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

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.