Home
» Power BI
»
Hojas de tiempo y salarios de LuckyTemplates Soluciones DAX
Hojas de tiempo y salarios de LuckyTemplates Soluciones DAX
Este blog se centra en una hoja de tiempo de LuckyTemplates y los costos salariales asociados. Le mostraré cómo calcular datos de tiempo y tipo de salario usando DAX. Voy a demostrar una solución DAX usando medidas y otra usando columnas calculadas. Puede ver el video completo de este tutorial en la parte inferior de este blog.
Este ejemplo provino de un , que ejecutamos en LuckyTemplates. Este es un escenario de la vida real que a menudo encontramos en organizaciones y negocios, y LuckyTemplates es la herramienta adecuada para ayudar a que el trabajo sea más fácil y rápido.
Hoja de tiempo y salarios de LuckyTemplates: solución de columnas calculadas
Para la solución DAX calculada mediante columnas calculadas, voy a la tabla Horario y creo una medida, a la que llamo CC-Regular Hours , para calcular las horas regulares.
En esta fórmula, obtengo las horas de la tabla y las pongo en una variable ( ). Luego calculo es feriado, fin de semana o un día normal. Con la función , aprovecho el modelo de datos para determinar eso y luego uso las dos variables (_IsHolidayDay y _IsWeekendDay ) para determinar la tercera ( _IsRegularDay ).
Finalmente, utilizo una instrucción en la que verifico el horario habitual. Los otros dos (vacaciones y fines de semana) van a estar . Y si es un día normal, quiero devolver las horas hasta ocho horas, y luego usaré la construcción RETURN Result .
Haré más o menos lo mismo para la fórmula de horas extra ( CC-Horas extra ): solo cambiaré la instrucción CAMBIAR VERDADERO. Esto devolverá las horas para un día de fin de semana. Si es un día normal, devolverá las horas superiores a las ocho horas.
Para las horas de vacaciones, devolverá todas las horas si es un día festivo, y devolverá espacios en blanco si es un día de fin de semana o uno normal.
Ahora pasemos a los salarios. Para la fórmula de salario de horas regulares, aprovecharé la columna calculada que acabo de hacer para las horas regulares. Voy a determinar los salarios apropiados usando WageType , Straight Time .
Obtengo el salario por hora de los empleados del modelo de datos y luego uso LOOKUPVALUE obtener el multiplicador de la tabla de tipos de salario de desconexión para aplicar. Y finalmente, calculo la variable Result , luego tengo el RETURN Result al final.
Para las horas extra, simplemente cambiaré el tipo de salario a Tiempo y medio .
Haré algo similar para los salarios de vacaciones, pero simplemente cambiaré el tipo de salario a Double Time .
Finalmente, haré una suma simple para que el valor total esté disponible para mí.
Cuando arrastro estas columnas al informe, podemos ver los resultados.
Hoja de horas y salarios de LuckyTemplates: solución DAX mediante medidas
Voy a hacer más o menos lo mismo que hice con las columnas calculadas, pero esta vez voy a hacer un pequeño cambio.
No tengo acceso al valor de tiempo directamente desde la tabla, así que voy a usar un aquí para obtener las horas asociadas con la entrada de tiempo particular que se muestra en el objeto visual. Aparte de eso, el código es el mismo que para la versión de columnas calculadas.
He hecho algo muy similar para las horas extras y las horas de vacaciones. Son las mismas reglas que para las columnas calculadas.
En cuanto a los salarios, se calculan de la misma manera. La única diferencia con las columnas calculadas es la variable por horas. Estoy usando el valor de medida que calculé. También hago lo mismo para los salarios de horas extras y lo mismo para los salarios de vacaciones.
Luego, escribiré una medida de suma simple para los salarios totales.
Y ahora agrego estas medidas en la tabla para que podamos ver los resultados. Observe que ninguna de las medidas muestra totales. Para ver los valores totales de las medidas aquí, usaré el patrón de corrección de totales incorrectos . Para hacer esto, necesito crear medidas que usen tablas virtuales para imitar la tabla física que tengo aquí.
Corregir patrón de totales incorrecto
Para solucionar esto, necesito crear medidas que usen tablas virtuales para imitar la tabla física que tengo aquí. Entonces, para el total de horas, utilicé la construcción para crear una tabla virtual con una identificación de tiempo y las horas. Y luego uso sobre la tabla virtual para calcular el valor.
Arrastraré eso a la tabla de abajo, y ahora podemos ver el total de horas.
Voy a hacer lo mismo con los salarios, donde usaré y SUMMARIZE . Y luego para el resultado, voy a usar la función para la medida que ya creé y SUMX para la tabla virtual.
Luego agrego eso a la tabla aquí, y podemos ver que ahora tenemos los salarios totales.
Otra cosa es que cuando coloco mi medida Salarios totales en un gráfico de barras simple con departamentos y CC-nóminas, verá que no obtengo ningún valor aquí.
Esto es parte del problema de totales incorrectos solucionados. Y una de las mejores formas que he encontrado para arreglar esto es usar la tabla virtual y cambiar la medida.
Así que quitaré el que no tiene la mesa virtual y agregaré el que tiene la mesa virtual.
Ambas soluciones DAX son excelentes para este desafío de hojas de tiempo y salarios de LuckyTemplates. Sin embargo, también tienen sus pros y sus contras.
Los beneficios de usar medidas son que son mejores prácticas. No se calculan cuando se actualiza el modelo, sino solo cuando la medida se usa realmente en un objeto visual. La desventaja para ellos es que se necesita un poco de código DAX adicional cuando trabajamos con tablas virtuales para representar cosas y calcularlas correctamente. Pero no es gran cosa en absoluto.
En cuanto a las columnas calculadas, encuentro que son más fáciles de aprender y visualizar. Son un punto de partida muy familiar para quienes vienen de Excel. Sin embargo, una de las limitaciones de las columnas calculadas es que en realidad se crean físicamente en el modelo de datos y aumentan el tamaño de su modelo, lo que disminuirá el rendimiento de su informe.
Y la regla general es que no debe crear columnas calculadas en tablas de hechos. Si tiene que crear una columna calculada, intente hacerlo en tablas de dimensiones.
Yo personalmente uso columnas calculadas para agregar categorización a algunas tablas de dimensiones, donde había muchas dimensiones para mostrar.
Espero que hayas disfrutado este y aprendido mucho. Puedes ver el video completo de este tutorial a continuación.