media móvil de 26 semanas

Un usuario Pregunto ✅

emmaclarke83

Tengo un conjunto de datos que detalla las horas trabajadas por cada empleado cada semana del año. Quiero calcular un promedio móvil de las últimas 26 semanas. es posible? Tenga en cuenta que mi tabla de fechas no tiene fechas individuales ya que el conjunto de datos principal está en semanas.

emmaclarke83

Hola

¿Alguien más puede ayudar con esto?

Gracias

emma

jthomson

¿Cómo se almacena el valor de la semana, es solo un número entero y se reinicia anualmente? Suponiendo que sí y sí, intentaría buscar soluciones sobre cómo las personas han creado una columna año-mes en una tabla de fechas, si puede hacer algo similar y terminar con algo como 201652 para la última semana del año pasado y 201701 para la primera semana de este año, entonces tiene un solo número entero donde los valores más altos son los más recientes. Debería ser sencillo usar algo como TOPN (26) como filtro para un promedio en su columna de horas

emmaclarke83

En respuesta a jthomson

ejemplo excel

Hola, si entero.

Puedo hacer una columna año/semana sin problema. Sin embargo, el top26 no funcionará ya que se trata de una media móvil. He adjuntado un enlace arriba a un ejemplo de Excel para mostrarle lo que quiero decir.

En respuesta a emmaclarke83

@emmaclarke83,

Podrías usar la siguiente medida para obtener media móvil de 26 semanas.

26WeekMovingSumHour =
VAR minweeknumber =
    MAX ( Table1[Weeknumber] ) - 26
VAR maxweeknumber =
    MAX ( Table1[Weeknumber] )
RETURN
    CALCULATE (
        Table1[TotalWeekHour],
        FILTER (
            ALL ( Table1 ),
            Table1[Weeknumber] > minweeknumber
                && Table1[Weeknumber] <= maxweeknumber
        )
    )
numberofweeks =
VAR minweeknumber =
    MAX ( Table1[Weeknumber] ) - 26
VAR maxweeknumber =
    MAX ( Table1[Weeknumber] )
RETURN
    CALCULATE (
        DISTINCTCOUNT ( Table1[Weeknumber] ),
        FILTER (
            ALL ( Table1 ),
            Table1[Weeknumber] > minweeknumber
                && Table1[Weeknumber] <= maxweeknumber
        )
    )
26WeekMovingAverageHour =
VAR minweeknumber =
    MAX ( Table1[Weeknumber] ) - 26
VAR maxweeknumber =
    MAX ( Table1[Weeknumber] )
VAR numberofWeek =
    CALCULATE (
        DISTINCTCOUNT ( Table1[Weeknumber] ),
        FILTER (
            ALL ( Table1 ),
            Table1[Weeknumber] > minweeknumber
                && Table1[Weeknumber] <= maxweeknumber
        )
    )
VAR WeekMovingSumHour =
    CALCULATE (
        Table1[TotalWeekHour],
        FILTER (
            ALL ( Table1 ),
            Table1[Weeknumber] > minweeknumber
                && Table1[Weeknumber] <= maxweeknumber
        )
    )
RETURN
    WeekMovingSumHour / numberofWeek

Captura.PNG

Saludos,

charlie liao

emmaclarke83

En respuesta a v-caliao-msft

Hola Charly Gracias por tu respuesta. Creo que esto se acerca a lo que necesito, pero lo necesito para cada empleado y cuando agrego el campo de número de empleado, los cálculos no parecen correctos. ¿Hay algo mas que pueda hacer? gracias emma

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *