ytd total de empleado activo al final del mes con fecha de inicio y finalización

Un usuario Pregunto ✅

Minu_Latha

Tener una tabla EmpActivity con columnas Número de empleado, Fecha de inicio, Fecha de finalización. Se creó una tabla desconectada CalenderAuto.

Se utiliza como Slicer for Year.Necesita obtener el recuento del empleado activo hasta la fecha al final de cada mes del año seleccionado.Si el empleado está trabajando actualmente, la fecha de finalización es Blanl

Mi salida debe ser como

p. ej., 2017 está seleccionado

Mes Contar El último año
ene 10 10
feb 8 18
mar 10 28

Por favor ayuda Soy nuevo en Power BI

Hola, @Minu_Latha

Según su descripción, puede crear una columna calculada y medidas como se muestra a continuación. El archivo pbix se adjunta al final.

Columna calculada:

YearMonth = YEAR([Date])*100+MONTH([Date])

La medida:

EndOfMonth = MAX('Calendar'[Date])
ECount = 
var startdate = MIN('Calendar'[Date])
var enddate = MAX('Calendar'[Date])
var res = 
    CALCULATE(
        DISTINCTCOUNT('BI EmpActivity'[BI.Personnel.EmpNo1]),
        FILTER(
            ALLSELECTED('BI EmpActivity'),
            NOT(
                OR(
                    [FromDate]>enddate,
                    [ToDate]<startdate
                )
            )
        )
    )
return
res
YTD = 
var t = ALLSELECTED('BI EmpActivity')
var t1 = 
SUMMARIZE(
    ALLSELECTED('Calendar'),
    'Calendar'[YearMonth],
    "Result",
    var startdate = MIN('Calendar'[Date])
    var enddate = MAX('Calendar'[Date])
    var res = 
    CALCULATE(
        DISTINCTCOUNT('BI EmpActivity'[BI.Personnel.EmpNo1]),
        FILTER(
            t,
            NOT(
                OR(
                    [FromDate]>enddate,
                    [ToDate]<startdate
                )
            )
        )
    )
    return
    res
)
return
SUMX(
    FILTER(
        t1,
        [YearMonth]<=MAX('Calendar'[YearMonth])&&
        LEFT([YearMonth],4)=LEFT(MAX('Calendar'[YearMonth]),4)
    ),
    [Result]
)

Resultado:

b1.png

Atentamente

Alano

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Hola, @Minu_Latha

Según su descripción, puede crear una columna calculada y medidas como se muestra a continuación. El archivo pbix se adjunta al final.

Columna calculada:

YearMonth = YEAR([Date])*100+MONTH([Date])

La medida:

EndOfMonth = MAX('Calendar'[Date])
ECount = 
var startdate = MIN('Calendar'[Date])
var enddate = MAX('Calendar'[Date])
var res = 
    CALCULATE(
        DISTINCTCOUNT('BI EmpActivity'[BI.Personnel.EmpNo1]),
        FILTER(
            ALLSELECTED('BI EmpActivity'),
            NOT(
                OR(
                    [FromDate]>enddate,
                    [ToDate]<startdate
                )
            )
        )
    )
return
res
YTD = 
var t = ALLSELECTED('BI EmpActivity')
var t1 = 
SUMMARIZE(
    ALLSELECTED('Calendar'),
    'Calendar'[YearMonth],
    "Result",
    var startdate = MIN('Calendar'[Date])
    var enddate = MAX('Calendar'[Date])
    var res = 
    CALCULATE(
        DISTINCTCOUNT('BI EmpActivity'[BI.Personnel.EmpNo1]),
        FILTER(
            t,
            NOT(
                OR(
                    [FromDate]>enddate,
                    [ToDate]<startdate
                )
            )
        )
    )
    return
    res
)
return
SUMX(
    FILTER(
        t1,
        [YearMonth]<=MAX('Calendar'[YearMonth])&&
        LEFT([YearMonth],4)=LEFT(MAX('Calendar'[YearMonth]),4)
    ),
    [Result]
)

Resultado:

b1.png

Atentamente

Alano

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Minu_Latha

En respuesta a v-alq-msft

Necesito saber algo para completar mi trabajo en YTD.
Tengo otra tabla EmpInactivehistory con FromDate y esta fecha tiene relación con el calendario (fecha) Creado.
Ya tengo la tabla EmpActivity que no tiene relación con Calendar (fecha). El recuento y el año a la fecha se calcula a partir de esta tabla en función del recuento de empleados al final de cada mes (ya hecho)
Pero la relación existente hace que las fechas se filtren.
Para el año 2019
EmpInactiveHistory tiene solo 1 registro en junio
Pero año 2019
El recuento basado en la empactividad existe para todos los meses, pero solo se muestra 1 mes (junio) hasta la fecha.

Junio.PNG

Relación

Relación.PNG

Cuando la relación entre el calendario (fecha y historia empInactiva (fecha), la salida eliminada de Empactivity es correcta

Salida.PNG

Fórmula para el recuento de empleados de EmpActivity basada en el final del mes

formula.PNG

Minu_Latha

En respuesta a v-alq-msft

Funciona bien Muchas gracias

PC2790

Conecte la tabla de calendario con su tabla de hechos principal que contiene todos los datos creando una relación. Esto le permitirá realizar todos los cálculos relacionados con fechas.

Luego, para ver una tabla con los meses y el número de candidatos, seleccione la tabla visual y agregue el Mes de la Tabla de calendario y una medida recién creada [NoOfEmployees] que se vería algo así como:

NoofActiveEmployees = CALCULATE(COUNTROWS(TableName),filter(TableName,TableName[EndDate] <> BLANK())

Prueba a ver si te da el resultado deseado.

Minu_Latha

En respuesta a PC2790

Mi tabla EmpActivity tiene fecha de inicio y finalización, por lo que no se puede establecer la relación

Emp No Fecha de inicio Fecha de finalización Actividad

1 05-02-2020 20-03-2020 Dejar

2 01-01-2020 Sigue trabajando

Entonces, cuando Slicer Year Seleccionado 2020

Mes Empcount YtdCount

1 de enero 1

Febrero 2 3

Mar 1 4

Necesito obtener un resultado como este. Qué hacer

PC2790

En respuesta a Minu_Latha

¿Puede proporcionar su código para la tabla de fechas?

Minu_Latha

En respuesta a PC2790

Más detalles

PC2790

En respuesta a Minu_Latha

Hola @Minu_Latha

Por favor, verifique si esto cumple con sus requisitos.

https://www.dropbox.com/s/18mq6f9jradjqxg/Sample1_updated.pbix?dl=0

Minu_Latha

En respuesta a PC2790

Lo sentimos No es el resultado deseado. Los registros que no están en blanco no se pueden considerar como activos. El empleado está activo hasta ahora, ese es el significado de la fecha de finalización es nulo

PC2790

En respuesta a Minu_Latha

Sí, tiene usted razón.

Modifique la medida de la siguiente manera:

NoofActiveEmployees = CALCULATE(COUNTROWS('BI EmpActivity'),filter('BI EmpActivity','BI EmpActivity'[ToDate] = BLANK()))

Para verificar esto, puede crear una columna calculada usando el código:

Active/Inactive = If('BI EmpActivity'[ToDate] = Blank(), "Active","Inactive") 

Arul

Hola @Minu_Latha,

¿Podría explicarlo de una manera más detallada? Para que me resulte útil comprender y resolver.

Gracias,

-Arul

Minu_Latha

En respuesta a Arul

La tabla EmpActivity contiene detalles del empleado

numero de empleado

Fecha de inicio

Fecha final

Calendario de tabla creado usando Calendarauto que no tiene relación con EmpActivity

Año del calendario utilizado como segmentación. Obtenga el recuento de empleados al final de cada mes y su año a año en cada mes

Deja un comentario

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