Cálculo de la suma de una columna FTE diaria

Un usuario Pregunto ✅

NEJO

Hola expertos

Esto parece muy simple …

Tengo un conjunto de datos simple que consta de Día, ID de empleado, FTE.

Necesito poder calcular el FTE promedio para cualquier período dado (a través de cortadoras), por lo que podría ser 1 mes, o podría ser un año, o incluso 1 semana. Para hacer esto, primero necesito promediar la columna FTE para ese día para cada empleado, y luego sumar el Promedio entre los empleados para darme el resultado que necesito mostrar en una tarjeta.

Creo que primero necesito crear una tabla sobre la marcha del promedio por empleado y luego resumirlo, pero no estoy seguro de cómo hacerlo.

Gracias

Neil

OwenAuger

Hola neil

Aquí hay dos fórmulas posibles.

El primero simplemente suma el FTE total por día y promedia la suma de los días actualmente filtrados.

El segundo hace lo mismo pero por empleado, luego los suma.

Esperaría que devolvieran el mismo resultado, excepto en los casos en que algunos Empleados no están presentes en el conjunto de datos en ciertos días, en cuyo caso la segunda fórmula solo promedia sus valores FTE durante los días que estuvieron presentes, antes de sumar.

Saludos,

Owen

Average FTE = 
AVERAGEX ( 
    VALUES ( YourTable[Day] ),
    CALCULATE ( SUM ( YourTable[FTE] ) )
)

Average FTE per Employee Summed =
SUMX (
    VALUES ( YourTable[FTE] ),
    CALCULATE (
        AVERAGEX ( 
            VALUES ( YourTable[Day] ),
            CALCULATE ( SUM ( YourTable[FTE] ) )
        )
    )
)

EDITAR: 2da fórmula corregida. SUMX cambió a AVERAGEX

Tu dijiste

«Primero promedia la columna ETC de ese día para cada empleado». ¿Por qué necesita hacer esto para cada empleado? Supongo que cada empleado solo tiene un registro para cada día, entonces, ¿por qué necesita promediar por empleado? ¿Quiere decir «promediar el FTE por día»?

Luego dice que quiere “resumir eso”, pero si lo hace, no obtendrá el promedio, obtendrá la suma del promedio de ese mes o año. Entonces, ¿es eso lo que quieres o quieres el promedio del promedio? ¿O algo mas? ¿Quizás desee dividir la columna total de fte por el número de días? No está claro.

NEJO

En respuesta a MattAllington

Disculpas, puede que me haya confundido un poco allí.

Tengo una tabla diaria de empleados y FTE ese día.

Entonces, si un empleado fue 1 FTE durante 5 días, y luego 0,5 FTE durante días, entonces el promedio sería 0,75 FTE durante los 10 días. Luego, querría sumar los promedios (en este caso, el 0.75FTE) para obtener un total de la plantilla promedio para ese período.

Entonces, en el ejemplo anterior, si hubiera 2 empleados que siguieron el mismo escenario, entonces el resultado sería un total de 1,5 FTE (2 empleados a 0,75 FTE cada uno)

Espero que tenga sentido.

Gracias

Neil

En respuesta a NEJO

¿Qué tal si publicas algunos datos de muestra?

OwenAuger

Hola neil

Aquí hay dos fórmulas posibles.

El primero simplemente suma el FTE total por día y promedia la suma de los días actualmente filtrados.

El segundo hace lo mismo pero por empleado, luego los suma.

Esperaría que devolvieran el mismo resultado, excepto en los casos en que algunos Empleados no están presentes en el conjunto de datos en ciertos días, en cuyo caso la segunda fórmula solo promedia sus valores FTE durante los días que estuvieron presentes, antes de sumar.

Saludos,

Owen

Average FTE = 
AVERAGEX ( 
    VALUES ( YourTable[Day] ),
    CALCULATE ( SUM ( YourTable[FTE] ) )
)

Average FTE per Employee Summed =
SUMX (
    VALUES ( YourTable[FTE] ),
    CALCULATE (
        AVERAGEX ( 
            VALUES ( YourTable[Day] ),
            CALCULATE ( SUM ( YourTable[FTE] ) )
        )
    )
)

EDITAR: 2da fórmula corregida. SUMX cambió a AVERAGEX

NEJO

En respuesta a OwenAuger

Gracias Owen

El primero parece hacer lo que necesito y trata a las personas que no están aquí como cero, que es lo que quiero para esto.

Sin embargo, no estoy seguro de que el segundo funcione, ya que termino obteniendo una suma de todo, donde esperaría ver una cifra de 1,39, creo. Promedio ABC de 0,75 más Promedio XYZ de 0,64 – totaliza 1,39.

Ejemplo de conjunto de datos y salida a continuación:

SampleDataFTE.PNG

Gracias

Neil

Anónimo

En respuesta a NEJO

@NEJO

¿Es este el resultado que busca?

Capture.JPG

Pregunto esto porque estos son los valores que mencionaste en una publicación anterior (.75 ​​para ABC y .64 para XYZ).

Average FTE =
AVERAGEX (
    VALUES ( Table1[TimeKeep] );
    CALCULATE ( SUMX ( ALLSELECTED ( Table1[TimeKeep] ); AVERAGE ( Table1[FTE] ) ) )
)

OwenAuger

Hola neil

Aquí hay un par de opciones:

1. Esta fórmula tomará cada día presente en su conjunto de datos (sujeto a cualquier filtro), calculará la suma de FTE en ese día y promediará todos los días.

Average Daily FTE =
AVERAGEX (
    VALUES ( YourTable[Day] ),
    CALCULATE ( SUM ( YourTable[FTE] ) )
)

2. Si, en cambio, quisiera calcular el promedio del FTE de cada Empleado solo durante los días para los cuales ese Empleado existe en el conjunto de datos, luego sume el resultado de cada Empleado, podría usar una fórmula ligeramente diferente:

Average Daily FTE Calculated Per Employee then Summed =
SUMX (
    VALUES ( YourTable[Employee] ),
    CALCULATE (
        AVERAGEX (
            VALUES ( YourTable[Day] ),
            CALCULATE ( SUM ( YourTable[FTE] ) )
        )
    )
)

Saludos,

Owen

Deja un comentario

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