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.
Hola a todos,
Soy nuevo en Power BI y DAX y esperaba obtener alguna dirección al respecto. Hice algunas búsquedas, pero no pude encontrar ninguna solución.
El objetivo es poder calcular el recuento medio de personal durante un período determinado (mes, semana, año, etc.). Aquí están los datos sin procesar con los que estoy empezando, realiza un seguimiento de los cambios en los registros de un empleado. Como puede ver, la fecha de terminación se une en todas las filas de un registro.
Identificación del registro de empleo | Fecha de entrada en vigor | Fecha de terminación |
a0N0Y00000AlUIP | 8/13/2018 | 8/17/2018 |
a0N0Y00000AQMfY | 8/3/2015 | 6/30/2016 |
a0N0Y00000AQMhr | 9/1/2016 | 5/2/2019 |
a0N0Y00000AQMhr | 6/1/2017 | 5/2/2019 |
a0N0Y00000AQMhr | 6/15/2017 | 5/2/2019 |
a0N0Y00000AQMhr | 6/1/2018 | 5/2/2019 |
a0N0Y00000AQMhz | 11/1/2016 | 6/2/2017 |
a0N0Y00000AQMi3 | 5/15/2017 | 5/30/2019 |
a0N0Y00000AQMi3 | 6/19/2017 | 5/30/2019 |
a0N0Y00000AQMi3 | 6/1/2018 | 5/30/2019 |
a0N0Y00000AQMiC | 10/23/2017 | 11/2/2018 |
a0N0Y00000AQMiF | 12/4/2017 | |
a0N0Y00000AQMiF | 6/1/2018 | |
a0N0Y00000AQMyT | 8/6/2018 | |
a0N0Y00000AQMyT | 8/24/2018 | |
a0N0Y00000AQMyT | 3/1/2019 | |
a0N0Y00000AQMyT | 10/1/2019 |
Para facilitar mi objetivo, he agrupado las filas por identificador, creado una columna de índice y lo he usado para crear una fecha de finalización para cada fila. Aquí está el aspecto de los datos ahora:
Identificación del registro de empleo | Group.Effective Date | Fecha de finalización |
a0N0Y00000AlUIP | 8/13/2018 | 8/17/2018 |
a0N0Y00000AQMfY | 8/3/2015 | 6/30/2016 |
a0N0Y00000AQMhr | 9/1/2016 | 5/31/2017 |
a0N0Y00000AQMhr | 6/1/2017 | 6/14/2017 |
a0N0Y00000AQMhr | 6/15/2017 | 5/31/2018 |
a0N0Y00000AQMhr | 6/1/2018 | 5/2/2019 |
a0N0Y00000AQMhz | 11/1/2016 | 6/2/2017 |
a0N0Y00000AQMi3 | 5/15/2017 | 6/18/2017 |
a0N0Y00000AQMi3 | 6/19/2017 | 5/31/2018 |
a0N0Y00000AQMi3 | 6/1/2018 | 5/30/2019 |
a0N0Y00000AQMiC | 10/23/2017 | 11/2/2018 |
a0N0Y00000AQMiF | 12/4/2017 | 5/31/2018 |
a0N0Y00000AQMiF | 6/1/2018 | 10/20/2020 |
a0N0Y00000AQMyT | 8/6/2018 | 8/23/2018 |
a0N0Y00000AQMyT | 8/24/2018 | 2/28/2019 |
a0N0Y00000AQMyT | 3/1/2019 | 9/30/2019 |
a0N0Y00000AQMyT | 10/1/2019 | 10/20/2020 |
También he creado una tabla de fechas con los períodos necesarios que se limita dinámicamente a los intervalos de fechas que quiero disponibles.
Pude encontrar y manipular una sugerencia que me da con precisión el número total de empleados en cualquier período;
Total Headcount =
CALCULATE( COUNTROWS( DISTINCT(JobHistoryReport[Employment Record ID]) ),
FILTER( VALUES( JobHistoryReport[Group.Effective Date] ), JobHistoryReport[Group.Effective Date] <= MAX( 'Date'[Date] ) ),
FILTER( VALUES( JobHistoryReport[End Date] ), OR( JobHistoryReport[End Date] >=MIN( 'Date'[Date] ), ISBLANK( JobHistoryReport[End Date] ) ) ) )
Sin embargo, he sido induceso en la elaboración / búsqueda de una fórmula que me daría el número promedio de empleados para cualquier período (uso de sumx tal vez?). Aquí está un ejemplo de salida deseada;
Identificación del registro de empleo | Group.Effective Date | Fecha de finalización |
a0N0Y00000AQMhr | 6/1/2017 | 6/14/2017 |
a0N0Y00000AQMi3 | 5/15/2017 | 6/18/2017 |
Dado sólo las dos filas anteriores, mi número promedio de empleados para junio de 2017 sería;
Período | Promedio de recuento de cabezas |
Junio de 2017 | 1.07 |
14 (desde la fila 1) + 18 (desde la fila 2) / 30 (días en el período) a 1,07 Promedio de personal.
Cualquier ayuda sería apreciada, gracias a todos!
Solved! Go to Solution.
Hola Pablo,
¡Agradezco la respuesta!
Si bien he encontrado -una- solución a este problema, no me importaría una mejor. 🙂 Esta solución es "imperfecta" porque se basa en la creación de lo que es potencialmente millones de filas de registro. Sin embargo, proporciona cálculos precisos y fáciles de administrar.
Para veranivar el problema:
Tengo un conjunto de datos que incluye estos campos relevantes: Fecha de inicio, Fecha de finalización e ID
Estoy tratando de contar el número promedio de empleados durante un período determinado. Mis resultados podrían parecer;
La forma correcta de calcular esto sería el forumula a continuación:
Número de días que cada registro estuvo activo en un período / Número de días en el período
Aquí hay un ejemplo: Dada sólo la tabla siguiente, Si quisiera calcular el número promedio de empleados en junio de 2018, obtendría 2.3
12+16+12+23+5 á 68
68/29 x 2,3
Donde 29 es el número de días en el mes de junio de 2018.
------------------------------
Aquí está mi solución imperfecta actual:
- Crear filas únicas para cada fecha en que un registro está activo y expandir la tabla.
- Crear una relación activa entre esta tabla y una tabla de fechas
A partir de aquí, es una medida simple para crear una tabla que calcula su número promedio de empleados:
Average Headcount = COUNTROWS(Query2) / COUNTROWS('Date')
Sólo en última instancia, me preocupo por el número de filas que esto crea. No tengo mucha experiencia con la plataforma, así que no estoy seguro de si va a ser capaz de manejar un número como 10 millones de filas, puede que tenga que limitar mis rangos de fechas a 2-3 años para compensar
Gracias por el tiempo de todos. 🙂
@Quamie
Es difícil para nosotros seguir su publicación con esa información que nos arroja en parte. Puede poner esas muestras en un pbix y publicar una pregunta con el archivo pbix de ejemplo.
saludos
Paul
Hola Pablo,
¡Agradezco la respuesta!
Si bien he encontrado -una- solución a este problema, no me importaría una mejor. 🙂 Esta solución es "imperfecta" porque se basa en la creación de lo que es potencialmente millones de filas de registro. Sin embargo, proporciona cálculos precisos y fáciles de administrar.
Para veranivar el problema:
Tengo un conjunto de datos que incluye estos campos relevantes: Fecha de inicio, Fecha de finalización e ID
Estoy tratando de contar el número promedio de empleados durante un período determinado. Mis resultados podrían parecer;
La forma correcta de calcular esto sería el forumula a continuación:
Número de días que cada registro estuvo activo en un período / Número de días en el período
Aquí hay un ejemplo: Dada sólo la tabla siguiente, Si quisiera calcular el número promedio de empleados en junio de 2018, obtendría 2.3
12+16+12+23+5 á 68
68/29 x 2,3
Donde 29 es el número de días en el mes de junio de 2018.
------------------------------
Aquí está mi solución imperfecta actual:
- Crear filas únicas para cada fecha en que un registro está activo y expandir la tabla.
- Crear una relación activa entre esta tabla y una tabla de fechas
A partir de aquí, es una medida simple para crear una tabla que calcula su número promedio de empleados:
Average Headcount = COUNTROWS(Query2) / COUNTROWS('Date')
Sólo en última instancia, me preocupo por el número de filas que esto crea. No tengo mucha experiencia con la plataforma, así que no estoy seguro de si va a ser capaz de manejar un número como 10 millones de filas, puede que tenga que limitar mis rangos de fechas a 2-3 años para compensar
Gracias por el tiempo de todos. 🙂
🙂 Golpe para cualquier ayuda.
Estaba probando algunos enfoques diferentes. Pude crear una medida adicional en la propia tabla que contaba con precisión el número de días en el período en que se selecciona un intervalo de fechas, sin embargo, el total de esa medida no es correcto. Puede llevarme a poder calcular el promedio de un período cuando se selecciona ese período.
Por desgracia, eso no me produciría lo que en última instancia estoy buscando, que son tablas / gráficos desglosados por período (mes, año, semana, etc.) con el recuento promedio.
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 |