Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Necesito escribir la función DAX con la que puedo encontrar el número de fechas que vienen primero 2 veces para cada uno de los empleados y cuáles son las horas trabajadas, a continuación se muestran los datos como:
Horario de empName Date
A 23/10/2021 4
A 30/10/2021 6
B 01/11/2021 3
C 05/11/2021 10
C 14/11/2021 11
C 20/11/2021 20
DAX debería darme número de horas como A=10 y C=22 (ya que estamos hablando de las primeras 2 fechas por empleado), y B no se contará en lo anterior ya que no hay 2 fechas consecutivas.
¿Alguna idea de cómo calcular lo anterior?
Solved! Go to Solution.
@Anmolgan, puedes probar una bandera como
Column = Var _count = countx(filter(Period, [EmpNam] =EARLIER([EmpNam]) && [Date] <= EARLIER([Date])), [EmpNam])
var _hour = sumx(filter(Period, [EmpNam] =EARLIER([EmpNam]) && [Date] <= EARLIER([Date])), [hours])
return if(_count =2 && _hour >20, 1,0)
Vea si el archivo adjunto después de la firma puede ayudar
@Anmolgan , Crear estas dos columnas
Cnt = countx(filter(Table, [EmpName] = earlier([EmpName]) && [Date] <= earlier([Date]) ), [EmpName])
total = countx(filter(Table, [EmpName] = earlier([EmpName]) && [Date] <= earlier([Date]) ), [hours])
crear meausre
calculate(sum(Table[Total]), filter(Table, Table[cnt] =2))
@amitchandak gracias por la respuesta, ¿podemos tweek esto ya que tengo períodos de pago definidos por el siguiente DAX, así que básicamente estoy buscando encontrar el número de empleados trabajados menos de 20 horas en los primeros dos períodos de pago, ahora los períodos de pago pueden ser 3,5,10, etc. A continuación se muestran los DAX que han escrito para determinar el período de pago:
@Anmolgan , ¿necesita en función del rango seleccionado o solo los dos primeros períodos?
Puedes primero 2 puntos sin filtro de segmentación de datos, las columnas harán
filtro adicional hará
calculate(sum(Table[Total]), filter(Table, Table[cnt] =2 && [Total] >20 ))
@amitchandak Requiero solo los dos primeros períodos para verificar cuáles fueron las horas trabajadas, ¿el DAX que publicó anteriormente hará esto?
@Anmolgan, puedes probar una bandera como
Column = Var _count = countx(filter(Period, [EmpNam] =EARLIER([EmpNam]) && [Date] <= EARLIER([Date])), [EmpNam])
var _hour = sumx(filter(Period, [EmpNam] =EARLIER([EmpNam]) && [Date] <= EARLIER([Date])), [hours])
return if(_count =2 && _hour >20, 1,0)
Vea si el archivo adjunto después de la firma puede ayudar
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |