Columna calculada para empleado nuevo y empleado izquierdo

Un usuario Pregunto ✅

insignia de richard

Hola,

Tengo una tabla en Power BI que contiene mi información de Nómina y tiene un registro por empleado por mes, de la siguiente manera.

Me gustaría tener una columna calculada que calcule el valor «Nuevo empleado» y devuelva un 1 si el mismo número de empleado no existe en el período anterior, por lo que en el ejemplo a continuación, el empleado 90003 y 90004 devuelven 1 para el 02/01 /2018 ya que estos registros de empleados no existían para el 01/01/2018.

Soy bastante nuevo en DAX, así que tengo problemas para hacer esto, he intentado buscar en la web pero parece que no puedo encontrar nada que funcione para lo siguiente.

I Nómina.JPG

Gracias por adelantado.

Zubair_Muhammad

En respuesta a Zubair_Muhammad

@richardbadge

Archivo adjunto también

nuevos-antiguos-empleados.png

Zubair_Muhammad

@richardbadge

Puedes usar esta columna

New Employee =
VAR temp =
    FILTER (
        Table1,
        Table1[Employee Number] = EARLIER ( Table1[Employee Number] )
            && Table1[Period] < EARLIER ( Table1[Period] )
    )
RETURN
    IF ( COUNTROWS ( temp ) > 0, 0, 1 )

Zubair_Muhammad

En respuesta a Zubair_Muhammad

@richardbadge

Archivo adjunto también

nuevos-antiguos-empleados.png

egemeny

En respuesta a Zubair_Muhammad

Hola @Zubair_Muhammad,

¡Solución realmente útil!

Esto fue algo que siempre quise incluir en mis informes, pero creo que debo adaptarme a la solución de acuerdo con mi conjunto de datos.

Mi conjunto de datos tiene una tabla de calendario separada, en mi caso, la columna ‘período’ está en la tabla separada. ¿Cómo puedo crear una relación entre la columna de período y la columna de fecha de inicio del empleado en otra tabla?

Puede ver el archivo .pbix, realmente agradezco su ayuda,

mi

insignia de richard

En respuesta a Zubair_Muhammad

Gracias por eso, parece funcionar, pero tengo 1 pregunta. ¿El ANTERIOR < ( Table1[period]) verificar si el empleado existió en algún período anterior? ¿Cómo cambiaría esto para ver solo el registro del mes anterior?

También para los puntos browney, lo que no pedí en la publicación original fue la lógica inversa para calcular un indicador de «Empleado a la izquierda» que se establecerá en 1 si el empleado no existe en el período siguiente, ¿qué DAX haría esto?

Gracias nuevamente por tu asistencia

insignia de richard

En respuesta a insignia de richard

@Zubair_Muhammad

Muchas gracias por su ayuda, logré modificar la fórmula de la siguiente manera para que funcione y solo mire el período anterior, y también creé una para «Leavers» de la siguiente manera

Starter = VAR temp = FILTRO ( Nómina, Nómina[EmployeeNumber] = ANTERIOR ( Nómina[EmployeeNumber] ) && dateadd(Nómina[FinancialDate1stDay],+1,MES ) = ANTERIOR ( Nómina[FinancialDate1stDay]) ) REGRESAR SI ( CUENTAS ( temp ) > 0, 0, 1 )

Leaver = VAR temp = FILTRO ( Nómina, Nómina[EmployeeNumber] = ANTERIOR ( Nómina[EmployeeNumber] ) && dateadd(Nómina[FinancialDate1stDay],-1,MES ) = ANTERIOR ( Nómina[FinancialDate1stDay] ) ) REGRESAR SI ( CUENTAS ( temp ) > 0, 0, 1 )

Creo que lo anterior parece estar funcionando como se esperaba.

Deja un comentario

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