Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago
Solved

Rodando por semana

Hola

Estoy tratando de crear una suma móvil entre el lunes y el domingo, como se muestra a continuación en la columna "Rolling earned". ¿Cómo se calcula este valor?

La semana ganada se calcula de la siguiente manera:

Semana acumulada = CALCULAR([Ganado2], FILTRO (
Todo ( 'DateTable'[EoWDate] ),
AÑO ( 'DateTable'[EoWDate]) = AÑO ( ..MAX ('DateTable'[EoWDate] ) )
&& 'DateTable'[EoWDate] <= ..MAX ( 'DateTable'[EoWDate] )
)
)
Henrik

3 Replies

  • Hi Henrik,

    Tengo otro enfoque que parece un poco más complejo en primer lugar, pero también cubre el cálculo correcto cuando cambia el año si este es un requisito en su caso:

    Rolling weeks, also over year = 
    var var_EndDate = MAX('Dim Date'[Date])
    var var_WeekDayNumber = CALCULATE(SELECTEDVALUE('Dim Date'[WeekDayNum]),'Dim Date'[Date] = var_EndDate)
    var var_StartDate = var_EndDate - var_WeekDayNumber + 1
    
    var Result =
    CALCULATE(
        SUM(FactOnlineSales[SalesAmount]),
        ALL('Dim Date'),
        DATESBETWEEN('Dim Date'[Date],var_StartDate,var_EndDate)
    )
    
    RETURN
    Result

    A continuación encontrará el resultado.

    Saludos

    Miguel

    Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente. Aprecia tus felicitaciones.

  • @Henrik_99 ,

    Tal vez esto funcione para ti

    Measure = 
    VAR MinDate = MIN('Facts8'[Date])
    VAR MaxWeek = MAX('Facts8'[Week])
    RETURN
    SUMX(
         FILTER(
              ALL('Facts8'),
               MaxWeek = 'Facts8'[Week] && MinDate >='Facts8'[Date]
               ),
        'Facts8'[Earned]
    )

    esta es la tabla que he usado

    y este es el resultado

    Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.