BMR_MR
¡Hola a todos!
Estoy tratando de crear una visualización de los datos de RR.HH. en PowerBI, pero antes de hacerlo, estoy trabajando en PowerQuery y Data Model usando Excel solo para poder hablar con los miembros de RR.HH. sobre la calidad e integridad de los datos.
Ahora me las arreglé para construir un modelo que proporciona valores promedio en líneas para cada empleado, puesto, departamento. ect. junto con la tabla de tiempos, pero cuando apliqué tablas virtuales (TAB1, TAB2) para calcular los datos promedio de FTE / PAX, mi modelo se ralentizó drásticamente …
Empecé con la fórmula para la suma de FTE:
sFTE: = CALCULAR (
SUM (Contratos[Full-time equivalent]),
FILTRO (VALORES (Contratos[Line applies as of this date]), Contratos[Line applies as of this date]<= MAX ('Calendario'[Date])),
FILTRO (VALORES (Contratos[Line applies to this date]), O (Contratos[Line applies to this date]> = MIN (‘Calendario'[Date]), ISBLANK (Contratos[Line applies to this date])))
)
y para el número de PAX he usado la fórmula:
ESPACIO: = CALCULAR (
DISTINCTCOUNT (Contratos[Personnel number]),
FILTRO (VALORES (Contratos[Line applies as of this date]), Contratos[Line applies as of this date]<= MAX ('Calendario'[Date])),
FILTRO (VALORES (Contratos[Line applies to this date]), O (Contratos[Line applies to this date]> = MIN (‘Calendario'[Date]), ISBLANK (Contratos[Line applies to this date])))
)
pero cuando se aplica la fórmula para calcular el FTE promedio:
FTE: = CALCULAR (
AVERAGEX (SUMMARIZE (‘Calendario’, ‘Calendario'[Date], «TAB1», ‘Contratos'[NofD]* ‘Contratos'[sFTE]),[TAB1]),
FILTRO (VALORES (Contratos[Line applies as of this date]), Contratos[Line applies as of this date]<= MAX ('Calendario'[Date])),
FILTRO (VALORES (Contratos[Line applies to this date]), O (Contratos[Line applies to this date]> = MIN (‘Calendario'[Date]), ISBLANK (Contratos[Line applies to this date])))
)
y PAX promedio:
PAZ: = CALCULAR (
AVERAGEX (SUMMARIZE (‘Calendario’, ‘Calendario'[Date], «TAB2», ‘Contratos'[NofD]* ‘Contratos'[sPAX]),[TAB2]),
FILTRO (VALORES (Contratos[Line applies as of this date]), Contratos[Line applies as of this date]<= MAX ('Calendario'[Date])),
FILTRO (VALORES (Contratos[Line applies to this date]), O (Contratos[Line applies to this date]> = MIN (‘Calendario'[Date]), ISBLANK (Contratos[Line applies to this date])))
)
donde ‘Contratos'[NofD]:
NofD: = CALCULAR (
COUNTROWS (‘Calendario’),
FILTRO (VALORES (Contratos[Line applies as of this date]), Contratos[Line applies as of this date]<= MAX ('Calendario'[Date])),
FILTRO (VALORES (Contratos[Line applies to this date]), O (Contratos[Line applies to this date]> = MIN (‘Calendario'[Date]), ISBLANK (Contratos[Line applies to this date])))
)
mi modelo se ralentizó …
Una parte de los datos en los que estoy trabajando se puede encontrar a continuación:
Tenga en cuenta que puede suceder que para un empleado FTE pueda cambiar durante el año varias veces e incluso un mes (es por eso que necesito el promedio porque la suma me da un resultado incorrecto cuando uso el horario …).
Número personal |
La línea se aplica a partir de esta fecha |
La línea se aplica a esta fecha |
Equivalente a tiempo completo |
2139 |
01/04/2020 |
30/09/2020 |
1,00 |
1302 |
01/07/2019 |
1,00 |
|
1302 |
09/07/2020 |
0,00 |
|
1736 |
29/10/2018 |
08/11/2019 |
0,40 |
1386 |
01/07/2019 |
31/03/2020 |
1,00 |
1386 |
01/04/2020 |
31/05/2020 |
0,83 |
1386 |
01/06/2020 |
30/06/2020 |
0,52 |
1386 |
01/07/2020 |
31/03/2021 |
0,50 |
1386 |
01/04/2021 |
1,00 |
|
1331 |
02/08/2017 |
24/03/2020 |
1,00 |
1331 |
25/03/2020 |
31/08/2020 |
0,00 |
1331 |
09/01/2020 |
30/09/2020 |
0,60 |
1331 |
10/01/2020 |
26/10/2020 |
0,51 |
1331 |
27/10/2020 |
1,00 |
|
2132 |
03/09/2020 |
31/03/2020 |
1,00 |
2052 |
17/01/2020 |
15/03/2020 |
1,00 |
2052 |
16/03/2020 |
18/05/2020 |
0,40 |
1546 |
15/02/2019 |
31/03/2020 |
1,00 |
1546 |
01/04/2020 |
31/05/2020 |
0,00 |
1546 |
01/06/2020 |
30/06/2020 |
0,13 |
1546 |
01/07/2020 |
31/03/2021 |
0,40 |
1546 |
01/04/2021 |
1,00 |
|
1979 |
11/03/2019 |
24/03/2020 |
1,00 |
1979 |
25/03/2020 |
31/08/2020 |
0,00 |
1979 |
09/01/2020 |
30/09/2020 |
0,60 |
1979 |
10/01/2020 |
26/10/2020 |
0,51 |
1979 |
27/10/2020 |
1,00 |
Tal vez alguien de U podría ayudarme a eliminar esta fórmula de desaceleración y ayudarme a obtener datos al final de cada período (fin de mes, fin de año, etc.).
¡Gracias de antemano!
BR | BMR
BMR_MR
Gracias daxer-todopoderoso por el consejo, pero probablemente cuando pudiera hacer esto correctamente no plantearía esta pregunta aquí … Por supuesto, haré todo lo posible para obtener la dirección correcta, pero por ahora otra propuesta de solución más que bienvenida. 🙂
BR | BMR
Stachu
En respuesta a BMR_MR
¿Existe alguna unión activa entre ‘Contratos’ y ‘Calendario’? La sintaxis que publicó es para medidas calculadas, no para columnas, ¿correcto?
¿Obtienes el mismo resultado para [FTE] con la sintaxis a continuación? ¿Es mejor el rendimiento?
FTE2 =
CALCULATE (
AVERAGEX ( VALUES ( 'Calendar'[Date] ), [NofD] * [sFTE] ),
FILTER (
ALLSELECTED (
'Contracts'[Line applies as of this date],
'Contracts'[Line applies to this date]
),
Contracts[Line applies as of this date] <= MAX ( 'Calendar'[Date] )
&& (
Contracts[Line applies to this date] >= MIN ( 'Calendar'[Date] )
|| ISBLANK ( Contracts[Line applies to this date] )
)
)
)
BMR_MR
En respuesta a Stachu
¡Hola Stachu!
Gracias por echar un vistazo y tratar de ayudarme con mi fórmula. 🙂
Con respecto a su pregunta, sí, tuve relaciones inactivas entre la columna de fechas (la línea se aplica a esta fecha, la línea se aplica a esta fecha) y mi sintaxis relacionada con las medidas calculadas.
Ahora su sintaxis está funcionando en PowerBI, pero no tengo idea de por qué en PowerPivot la fórmula devuelve un error en el área siguiente:
TODOS SELECCIONADOS (
‘Contratos'[Line applies as of this date],
‘Contratos'[Line applies to this date]
),
Para mí, todavía es necesario usar Excel como una hoja de cálculo en la comunicación con RR.HH., así que espero que también pueda ayudarme con este problema.
Stachu
En respuesta a BMR_MR
¿Qué error devuelve? ¿Podría deberse, por ejemplo, a nombres de columna no coherentes, por ejemplo, espacio adicional en alguna parte?
BMR_MR
En respuesta a Stachu
En Power BI no hay ningún error de sintaxis:
pero en PowerPivot
¿Alguna idea?
daxer-todopoderoso
Un buen consejo: nunca, nunca, debe usar SUMMARIZE para hacer algo más que obtener la combinación distinta de filas. Es demasiado para hablar y no tengo el tiempo ni el espacio aquí para ampliar este tema tan importante. Si vas a www.sqlbi.com, encontrarás un artículo de Aberto Ferrari y Marco Russo que explica detalladamente por qué es una MUY, MUY MALA IDEA. Esta es una de las causas de su problema, pero supongo que no es la única. Pero al menos sabes por dónde empezar …