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.
v-caliao-msft
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
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