Home
» Power BI
»
Por qué usar variables de LuckyTemplates es una mejor manera de escribir medidas DAX
Por qué usar variables de LuckyTemplates es una mejor manera de escribir medidas DAX
El uso de variables es una excelente manera de asegurarse de que sus resultados se suman de la manera en que deberían al final de sus medidas. Las variables son una parte crucial de la escritura y resolución de fórmulas dentro de LuckyTemplates y le mostraré por qué. Puede ver el video completo de este tutorial en la parte inferior de este blog.
Datos de muestra visualizados en diagrama de Gantt
Para mostrar la importancia de usar variables en sus medidas DAX, usaré esta fórmula razonablemente compleja como ejemplo. Usé esto para un evento reciente solo para miembros de LuckyTemplates sobre gestión de proyectos.
Para visualizar los datos, creé este diagrama de Gantt único. Verá que hay mucha lógica incrustada en él, lo que me permite codificar con colores los datos que muestran información como cuándo comenzó un proyecto, cuándo finalizó, etc.
Hagamos una revisión rápida de los datos detrás de este gráfico.
Verá que tengo la fecha de inicio y finalización de cada tarea en un proyecto en particular. Lo que agrega complejidad a la fórmula es el hecho de que también tengo una columna para %Finalización.
¿Cómo visualizo esa tasa de finalización en mi gráfico? Esto se muestra mostrando las tareas en vivo actuales detalladas en función de las diferentes tareas en vivo para cada categoría.
También tuve que usar una cantidad de colores diferentes en mi gráfico para diferentes categorías de tareas en cada proyecto diferente, así que terminé usando el formato condicional dentro de mi matriz para que todo eso sucediera.
Ahora, cuando navego por el foro de soporte de LuckyTemplates, a menudo veo a los usuarios aplicando fórmulas muy complejas cuando manejan datos como este. La verdad es que muchos de ellos deberían dividirse en variables.
Uso de variables en fórmulas complejas
Independientemente de lo que esté tratando de calcular, solo quiero mostrarle la configuración a la que debe apuntar si no está usando tantas variables. Quiero que vea por qué necesita usar variables aquí y cómo las he usado para hacer que esto funcione.
De hecho, puede hacer referencia a variables dentro de variables. Esto significa que puede acumular una gran cantidad de su cálculo antes de ingresar cualquier cosa en RETORNO.
Es importante recordar que cada resultado se calcula individualmente en LuckyTemplates. Por lo tanto, también debe considerar el contexto para cada resultado individual.
Verá que usé VAR para CurrentDay, ProjectDays y DaysFromStartDate. También tomé DaysFromEndDate haciendo referencia a DaysFromStartDate y ProjectDays.
Después de eso, hice más trabajo de lógica en ProgressColor y CompletionPercent.
Otra cosa interesante acerca de las variables es que también puede incrustar alguna lógica VERDADERA o FALSA. Normalmente, vería una larga lista de declaraciones IF aquí en la fórmula principal. Pero esta vez, elegí colocar esa lógica VERDADERO o FALSO dentro del VAR usando ToCompletionLogic y MAX Días mayores o iguales a MAX Días menores o iguales a, y así sucesivamente.
También verá que ingresé mis declaraciones IF en mi fórmula SWITCH aquí, que es un enfoque más eficiente.
Las declaraciones IF ahora son más fáciles de entender porque la lógica solo necesita escribirse una vez en las variables en lugar de ser referencias para cada declaración en esta lista.
Uso de ramificaciones de variables frente a medidas
Tal vez se pregunte por qué no usé la bifurcación de medidas en este caso, sabiendo que también lo he mencionado varias veces antes.
Es porque gran parte de la lógica utilizada aquí es puramente solo para este cálculo específico. No es reutilizable en el resto de mi modelo.
Entonces, en este caso particular, es mejor simplemente ponerlo como una variable dentro de una fórmula donde realmente lo usa, en lugar de que ocupe mucho espacio dentro de sus grupos de medida.
Debido a que es local solo para este cálculo, decidí colocar todas estas cosas dentro de las variables y crear una fórmula única que lo resuelva todo.
Es importante tener en cuenta que no construí esta fórmula desde cero. Originalmente tenía todos estos separados en diferentes medidas. Eso es para asegurarme de que estaba calculando los resultados correctos en cada contexto diferente. A partir de ahí, lo limpié todo construyendo esta medida en particular.
Entonces, en términos de sintaxis, tiene sus variables en la parte superior y luego la función RETORNO para ingresar su lógica aquí.
Ahora que ve la aplicación que usé, espero que entienda por qué prefiero usar variables en casos como estos.
Una cosa que me gustaría enfatizar aquí es la importancia de comprender cada variable individual antes de crear una fórmula compleja como la que hice.
También veo esto mucho en nuestro foro de soporte. Van directamente a la medida larga y se preguntan por qué los resultados no se muestran correctamente. Realmente tienes que entender cómo se calcula cada resultado individual. Una vez que los coloca a todos en la medida final única, no hay forma de auditar los resultados individuales.
Una vez que tenga una buena comprensión de cómo funciona, finalmente podrá crear fórmulas más avanzadas usando variables sin tener más problemas al final.