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
Gracias por adelantado.
Zubair_Muhammad
En respuesta a Zubair_Muhammad
@richardbadge
Archivo adjunto también
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
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.