Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Estoy tratando de crear un informe sobre la adherencia a la entrada de tiempo de los empleados. Mi objetivo es que tenga una adherencia del 100 %, y la razón por la que incluso estoy creando este informe es porque en realidad no tengo una adherencia del 100 %.
Lo que hace que mi situación particular sea difícil es que si un empleado debe ser contado para la entrada de tiempo para el día dado es una función tanto del día de la semana como de su ubicación.
Sólo estoy interesado en la entrada de horario de ayer.
Aquí está mi modelo de datos simplificado y los datos:
Entrada de tiempo de hechos
Clave del empleado | Clave de fecha |
1 | 6 |
Fecha de dimensión
Clave de fecha | Día de la semana |
1 | Domingo |
2 | Lunes |
3 | Martes |
4 | Miércoles |
5 | Jueves |
6 | Viernes |
7 | Sábado |
Empleado de Dimension
Clave del empleado | Ubicación |
1 | a |
2 | a |
3 | b |
4 | b |
Reglas de entrada de tiempo
Ubicación | Día de la semana |
a | Lunes |
a | Martes |
a | Miércoles |
a | Jueves |
a | Viernes |
b | Domingo |
b | Lunes |
b | Martes |
b | Miércoles |
b | Jueves |
Mi tabla "Entrada de tiempo de hechos" solo contiene datos de ayer. He cortado las relaciones entre la tabla "Reglas de entrada de tiempo" y otras tablas para evitar un modelo circular.
Estoy usando las siguientes definiciones:
Número esperado de empleados (y): el número de empleados que deberían haber introducido la hora ayer (es decir, tener un registro en la tabla 'Entrada de tiempo de hecho')
Número real de empleados (x): el número de empleados que han introducido la hora ayer (es decir, tiene un registro en la tabla 'Entrada de tiempo de hecho')
Porcentaje de entrada de tiempo (z) - el porcentaje del número esperado de empleados que entraron en la hora ayer
Por lo tanto, con los datos de muestra dados, mi salida esperada es:
z á 1 / 2 a 50 %
obtenido por:
-desde 'Entrada de tiempo de hecho'[Clave de fecha] - '6' (es decir, viernes), a continuación, a través de la tabla 'Reglas de entrada de tiempo', espero que sólo [Ubicación] - 'a' empleados hayan introducido datos ayer
por lo tanto, y 2 (es decir, los empleados 1 y 2)
pero, x 1 (es decir, empleado 1)
¿Cómo puedo implementar una medida DAX para devolver z?
Hola
Por favor, pruebe esta medida:
z =
var WeekDay = CALCULATE(MAX('Dimension Date'[Day of Week]),FILTER('Dimension Date','Dimension Date'[Date Key]=MAX('Fact Time Entry'[Date Key])))
var Location = CALCULATE(MAX('Time Entry Rules'[Location]),FILTER('Time Entry Rules','Time Entry Rules'[Day of Week]=WeekDay))
var y = CALCULATE(DISTINCTCOUNT('Dimension Employee'[Employee Key]),FILTER('Dimension Employee','Dimension Employee'[Location]=Location))
var x = DISTINCTCOUNT('Fact Time Entry'[Employee Key])
return
x/y
El resultado muestra:
Aquí está mi archivo pbix de prueba:
Espero que esto ayude.
Saludos
Giotto
Hola @qubit813
Esto es lo que hice:
1. He creado exactamente las mismas 4 tablas que usted mencionó. Sin embargo, definí las relaciones un poco diferente (como se ve en la captura de pantalla de abajo).
2. Coloqué el campo Día de la semana de la tabla DimensionDate en una segmentación de datos. También coloqué la clave de empleado de la tabla DimensionEmployee en una tabla. A continuación, creé la siguiente medida:
Esperado (Y) - COUNT(DimensionEmployee[Clave del empleado])
Cuando elijo un día en particular en la segmentación de datos, cambiará los valores de la tabla y también da el valor Y correcto como se esperaba (vea la captura de pantalla a continuación).
3. Creé otra medida:
El único truco en este caso es que usted tiene que seleccionar qué día de la semana es - espero que esto ayuda!
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |