Home
» Power BI
»
Variables ficticias: cómo usarlas para escribir DAX más inteligente
Variables ficticias: cómo usarlas para escribir DAX más inteligente
En este tutorial, hablaré sobre cómo usar variables ficticias para escribir mejores medidas DAX. Esto es especialmente aplicable en los casos en que se necesita un DAX más complejo. Usando esta técnica, puede ser más flexible al tratar con diferentes variables y condicionales. Puede ver el video completo de este tutorial en la parte inferior de este blog.
Decidí hacer este tutorial debido a una pregunta que encontré en el .
Basado en esta pregunta, Harvey quería combinar un análisis de Pareto con algunos criterios adicionales. Quería observar el 20 % superior del rango de ventas y, al mismo tiempo, observar su intersección con otros productos que tenían márgenes por encima de cierto porcentaje.
Solución de redacción para rango de ventas y límite de margen de beneficio
Según los requisitos que mencionó Harvey, creé un borrador de solución que tiene controles deslizantes para el Rango de ventas y el Límite de margen de ganancias .
Dependiendo de los parámetros que establezca en esos controles deslizantes, la visualización de dispersión mostrará los productos que cumplen con ambos criterios .
Digamos que el rango de ventas es A y el margen de beneficio es B. Esto básicamente muestra una condición . Esto requiere medidas DAX relativamente estándar. Estos se muestran aquí en el panel derecho bajo medidas, donde tengo el Rango de ventas , que usa un básico . También tengo costos totales, ganancias totales y otras variables que obtienen sus valores de los controles deslizantes.
Uso de variables ficticias para condiciones AND
En cuanto a la condición AND , es esta medida la que hace el trabajo pesado.
Hay un par de cosas interesantes que puede notar en esta medida. Básicamente, estos condicionales se suelen utilizar en un criterio / . Pero en lugar de hacer eso, usé lo que llamo variables ficticias donde si la condición es VERDADERA, obtiene un 1. Si es FALSO, obtiene un 0.
Entonces, esta medida muestra que si el Rango de ventas es menor o igual que el Límite de rango de ventas, obtiene un 1. Si el Margen de ganancias es mayor que el Límite de margen de ganancias, obtiene un 1. De lo contrario, obtienen un cero.
Este enfoque es muy común en el análisis estadístico y de regresión, pero también puede ser útil cuando se trata de DAX.
Usé ese enfoque porque necesito esos valores para la siguiente parte donde combino esas dos variables multiplicándolas .
Una vez que se combinan las dos variables ficticias Rnk y Marg , puedo pasar a la siguiente parte de la medida. Si ese valor combinado es mayor que cero, le asigné el color rojo. Si no es así, se le asigna el color azul.
Uso de variables ficticias para condiciones OR
¿Qué sucede si desea utilizar este enfoque en una condición
Puede usar el mismo proceso, pero cuando se trata del paso en el que combina las variables, use un signo más en lugar de un asterisco .
Entonces, una condición AND requeriría un asterisco como este:
Una condición OR requeriría un signo más como este:
Una vez que presione aceptar, aplicará esas condiciones en el gráfico de dispersión. Los productos que cumplan con esas condiciones establecidas se mostrarán como estos puntos rojos aquí.
Por qué funcionan las variables ficticias
Si se pregunta por qué funcionan estas variables ficticias, aquí tengo algunos diagramas que podrían ayudar.
Comencemos con la condición AND .
Y implica que ambas o todas las condiciones son VERDADERAS. Esto se caracteriza por la multiplicación. Una vez multiplicada, cualquier condición FALSA establece el término completo en 0. Entonces, si tiene dos variables, A y B, y ambas son verdaderas, eso daría un producto de 1, que devuelve VERDADERO.
Pero si A es igual a cero o B es igual a cero, obtienes tres condiciones en las que todo el término terminará en cero. Esa es la intersección.
Si nos fijamos en la condición O, por otro lado, significa que cualquiera de las condiciones es VERDADERA. En lugar de multiplicación, esto requiere suma. Por lo tanto, ningún conjunto FALSO individual dará como resultado 0, pero siempre que una condición sea verdadera, incrementa esa condición en 1.
Entonces, en el diagrama de la condición O, si tanto A como B son VERDADEROS, el término obtiene un 2. Si A es falso pero B es verdadero, obtiene un 1. Lo contrario también obtiene un 1, mientras que solo obtiene un 0 si ambas condiciones son falsas.
Dónde son útiles las variables ficticias
Evidentemente, puede usar las condiciones AND u OR básicas para casos simples. Sin embargo, eso no funcionará tan bien cuando se trata de casos más complejos. Aquí hay un ejemplo.
Este caso muestra siete variables. La combinación de A, B y C son VERDADERAS. También lo son las combinaciones de D y E o F y G.
Si tuviera que escribir una medida DAX para esta condición, puede imaginar lo largo y complicado que sería. Pero si aplica variables ficticias, puede hacerlo mucho más simple. Solo necesita sustituir esos operadores para obtener la fórmula más simple.
A partir de ahí, utiliza la condición de que si el resultado es mayor que 0, sería VERDADERO. Si resulta ser igual a 0, obtienes un FALSO.
Volvamos al archivo de LuckyTemplates para ver cómo funciona en un informe real.
Entonces, en este caso, los puntos rojos muestran una instancia en la que ambas condiciones son verdaderas, mientras que los puntos morados muestran que solo una condición es verdadera.
Al entrar en la medida, verá las variables ficticias Rnk y Marg donde tenemos una condición OR como se muestra con el signo más .
Luego, también verá que bajo la construcción TRUE , tiene un 2 que resulta en rojo, lo que significa que tiene dos declaraciones VERDADERAS . Si una de las afirmaciones es verdadera, se vuelve violeta. Si ninguno de los dos es cierto, eso da como resultado un 0, que le mostrará puntos azules.
Eso corresponde directamente a la matriz del diagrama OR de la que hablamos anteriormente.
Volviendo a nuestra última condición, podemos ver lo que sucede si queremos ver dos conjuntos de valores atípicos. Básicamente, si queremos ver lo que cumple con las condiciones A y B, los dos puntos aquí arriba que representan los Productos 4 y 15 cumplen ese criterio.
Por otro lado, también puede mirar el valor atípico inferior, que es el Producto 1.
Recuerde también que todo este informe es dinámico. Entonces, cuanto más mueva los controles deslizantes, más puntos verá potencialmente.
Mirando la medida a continuación, muestra el caso final del que hablamos donde tiene cuatro variables ficticias: el rango superior (TopRnk), los valores mayores o iguales al margen (GTEMarg), el rango inferior (BotRank) y el menor o igual al margen (LEMar).
En cuanto al valor combinado, multiplicamos TopRnk y GTEMarg, y luego lo sumamos al producto de BotRank y LEMarg.
Si alguna de esas condiciones regresa como VERDADERA, se mostrará un punto rojo en el gráfico. Si no, mostraría un punto azul.
Mediante el uso y la combinación de estas variables ficticias, puede obtener los resultados que desea utilizando medidas simples en comparación con las medidas DAX complicadas habituales que requieren las medidas textuales VERDADERO/FALSO.
Comience a probar este enfoque en otros informes que tenga que usaron condiciones VERDADERO o FALSO en el pasado y vea cómo eso afecta sus medidas a medida que complica las condiciones.