The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hola a Todos!!
He intentado obtener una solución con algunas respuestas que hay en el forum pero me ha sido imposible.
La situación es que necesito saber el número de empleados activos que hay en una fecha concreta (mes/año).
Por ejemplo con la tabla siguente:
Empleado | Fecha Inicio | Fecha fin |
1 | 01/02/2022 | |
2 | 01/04/2022 | 01/07/2022 |
3 | 01/06/022 | 15/11/2022 |
4 | 01/08/2022 |
Si seleccionamos en una segmentación el mes abril y año 2022, la medida me debería dar el resultado de 2 empleados (empleado 1 y 2), si selecciono la fecha 31/07/2022, el número de empleados en esa fecha sería de 3 empleados, puesto que aunque el empleado nº 2 finaliza en el mismo mes, hay que contarlo como activo en ese mes. Si seleccionamos la fecha número 01/12/2022, tendresmos 2 empleados activos (1, 4), puesto que en esa fecha ya habrían finalizado los empleados 2 y 3.
La siguiente medida (pondré al final) en una tabla me selecciona e informa los empleados correctos pero el total no me suma correctamente. Es decir, en la fecha seleccionada mes abril y año 2022, la tabla me informaría 1, cuando el total sería "2". Solo me cuenta el empleado con fecha de inicio del mes a estudiar, es decir, el de fecha 01/04/2022.
Si en ese mes de estudio no hay ninguna nueva incorporación, el resultado es correcto. Es decir si la fecha de inicio del empleado fuera 01/03/2022, en la fecha seleccionada del mes abril y año 2022 me informaría de los dos empleados y el total sería 2 (de esa forma lo calcula correctamente).
Empleado | Fecha Inicio | Fecha fin | nº empleados |
1 | 01/02/2022 | 1 | |
2 | 01/04/2022 | 01/07/2022 | 1 |
Total | 1 |
e count =
CALCULATE(
COUNTROWS(
FILTER(
'EMPLEADOS ALTA',
'EMPLEADOS ALTA'[Fecha Inicio] <= MAX('Dim_Calendar'[Fecha ]) &&
(
ISBLANK('EMPLEADOS ALTA'[Fecha fin]) ||
'EMPLEADOS ALTA'[Fecha fin] >= EOMONTH( max( 'Dim_Calendar'[Fecha]), -1) + 1
)
)
),
ALL('Dim_Calendar'),
DATESBETWEEN('Dim_Calendar'[Fecha], MIN('EMPLEADOS ALTA'[Fecha Inicio]), MAX('Dim_Calendar'[Fecha]))
Gracias por vuestra ayuda.
Gracias por la respuesta recibida. Con esta medida me devuelve el número de empleados contratados en esa fecha, siguiendo con el ejemplo anterior, si selecionara la fecha abril 2022, me devuelve que estuvo de alta el empleado número 2, pero no me tiene en cuenta el empleado nº 1.
Lo que necesito es el número de empleados que a la fecha seleccionada han estado de alta algún día de ese mes: incluir los que fueron alta en este mes + incluir los que terminaron en la fecha seleccionada (porque tambien estuvieron de alta algún día en ese mes) + lo que habían sido alta en meses anteriores y continuan de alta (no causaron baja), sería el acumulado de los meses anteriores. En este caso sería que tuviera en cuenta la primera fecha de inicio y que la fecha fin estuviera vacía o que fuera superior a la fecha seleccionada para el calculo.
En el ejemplo anterior, si selecciono la fecha abril 2022, el resultado sería el empleado nº 2 (porque causa alta ese mes) + el empleado nº 1, porque su alta fue anterior a la fecha seleccionada y además aunque su fecha fin no está en blanco pero si es posterior a la fecha seleccionada.
Gracias
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.