Las variables de LuckyTemplates Dax son constantes: ¿qué significa esto?

Las variables de LuckyTemplates Dax son constantes: ¿qué significa esto?

Siempre que haya escuchado una explicación sobre cómo usar las variables DAX de LuckyTemplates, es posible que haya escuchado la frase "las variables son constantes". Parece simple, pero hay una buena cantidad de matices y complejidad en estas palabras. En este blog, lo guiaré a través de lo que significa esta frase y las implicaciones de cómo se calculan sus medidas. Comprender estos conceptos es esencial para garantizar que sus medidas produzcan los resultados deseados. Puedes ver el video completo de este tutorial en la parte inferior de este blog.

Una variable dentro de DAX puede ser realmente cualquier expresión DAX válida. Puede ser un valor, un cálculo, una medida o una variable que represente una tabla, otra variable o alguna combinación de esas cosas.

Hay dos partes en una variable. Ahí está la declaración donde inicializas la variable; le das un nombre y luego un valor. La otra es la instrucción RETURN , que luego llama al menos a una de las variables que declara. No es como un paréntesis donde necesita tener una declaración RETURN para cada variable, pero necesita tener al menos una declaración RETURN si declaró alguna variable.

La clave aquí es que, como dije antes, las variables son constantes. Lo que eso significa es que una vez que las variables se han asignado a un valor, ese valor no puede cambiar antes de la instrucción RETURN .

Tabla de contenido

Aplicación de variables DAX de LuckyTemplates en medidas

Echemos un vistazo a un ejemplo simple en el que tengo países y ventas totales. La medida Ventas totales es solo nuestra medida más básica, que es la de Ventas de línea dentro de la tabla Ventas.

Las variables de LuckyTemplates Dax son constantes: ¿qué significa esto?

Digamos que queremos obtener las Ventas totales del año 2020. En este conjunto de datos, tenemos las ventas de 2019, 2000 y 2021. Para obtener las ventas de 2020, debemos aplicar una condición de filtro muy simple: que es . Entonces, cambiamos nuestro contexto de filtro. Tenemos nuestra medida de Ventas totales, y luego nuestro año es 2020.

Las variables de LuckyTemplates Dax son constantes: ¿qué significa esto?

Si colocamos esa medida en la tabla, obtenemos exactamente lo que esperamos, que es el número correcto para 2020.

Las variables de LuckyTemplates Dax son constantes: ¿qué significa esto?

Ahora, si queremos aplicar variables a esto, aquí hay una versión ligeramente revisada de la medida anterior, en la que creé una variable llamada TotSales y la configuré igual a nuestra medida Total Sales.

Las variables de LuckyTemplates Dax son constantes: ¿qué significa esto?

Si lo pensamos desde el punto de vista de la sustitución algebraica, si simplemente sustituimos lo que anteriormente era nuestra medida de Ventas totales aquí por TotSales, que es igual a esa medida de Ventas totales, pensará que podría ser lo mismo y producir lo mismo. resultado. Pero si echamos un vistazo y colocamos esa medida en nuestra tabla, veremos que no produce el mismo resultado.

Las variables de LuckyTemplates Dax son constantes: ¿qué significa esto?

Se declara la variable TotSales, que obtiene el valor de las ventas totales. Digamos que estamos en la fila de Moldavia, y esa variable obtiene el valor de 2,35 millones. Ahora, recuerde que el valor no puede cambiar hasta que se llame a la instrucción RETURN. Entonces, cuando bajamos para calcular nuestra medida en la variable RESULTADO , lo que tenemos es TotSales, que es una constante de 2,35 millones.

Y luego, le aplicamos nuestro contexto de filtro, Dates[Year] es igual a 2020 , pero no importa porque esa constante no puede cambiar. Por lo tanto, podríamos decir que Dates[Year] es igual a 2019, 2021, y así sucesivamente, seguirán siendo los mismos 2,35 millones porque TotSales ahora está bloqueado como una constante hasta RETURN .

Y cuando regresa, pasamos a la siguiente fila, y la variable toma el valor de Holanda (4,4 millones). El proceso se repite, bloqueándolo como una constante hasta la instrucción RETURN. Lo que obtenemos es exactamente lo que tenemos en la medida Ventas totales, no en la medida que se filtra hasta 2020.

Entonces, podrías estar pensando que eso en realidad no parece muy útil. En este contexto, no lo es. En realidad, este es un error común cuando las personas comienzan a usar variables inicialmente . Pusieron la variable en la primera parte de la expresión de la sentencia CALCULATE. Por lo general, eso no dará el resultado que están buscando porque lo bloquea como un valor constante.

Uso de variables DAX de LuckyTemplates dentro de los iteradores

Las variables realmente brillan cuando las colocas dentro de los iteradores. Voy a hablarte de este caso, que es uno de valor anterior. Estamos buscando una fecha, y luego un valor anterior sujeto a una serie de condiciones.

Las variables de LuckyTemplates Dax son constantes: ¿qué significa esto?

Recuerde que la forma en que solía hacer esto antes de que las variables llegaran a DAX era a través de una función llamada . Pero ahora, las variables realmente funcionan muy bien en este contexto. Con las variables, se recomienda encarecidamente no volver a usar esa función ANTERIOR.

Entonces, echemos un vistazo a un ejemplo más complejo, donde tenemos variables en la parte del iterador en lugar de en la parte de la expresión. A continuación se muestra un caso de una pregunta que surgió en el en el que el miembro quería ver cada fecha dentro de un rango y luego encontrar la primera fecha anterior que no fuera un fin de semana o un día festivo.

Las variables de LuckyTemplates Dax son constantes: ¿qué significa esto?

Quiero centrarme particularmente en el martes 15 de octubre como el principal ejemplo. El resultado deseado era mirar esa fecha. El lunes era el Día de la Raza, por lo que era feriado, luego los siguientes días anteriores eran el domingo y el sábado. Entonces, la fecha que queríamos obtener era el 11 de octubre, que era el viernes.

Si observa la columna Día anterior/Sin fin de semana/Sin feriado, el martes fue el 11. Lo mismo sucedió con los lunes, domingos y sábados. Eso es lo que queremos obtener como resultado.

Al lado de la tabla anterior está la medida que usamos para este caso. Declaramos una variable que era la fecha seleccionada ( VAR SelDate ), y que era solo de la Fecha. Tomaría el 15 de octubre en nuestra variable y luego lo mantendría como una constante hasta la instrucción RETURN.

Luego, evaluamos el DAX de afuera hacia adentro. Si observamos la condición del filtro, está eliminando los filtros en Fechas y luego está configurando una serie de filtros adicionales. Está tomando esa fecha seleccionada constante, 15 de octubre, y está diciendo, dame todas las fechas anteriores a esa. Y luego, de esas fechas asegúrese de que ninguna de esas fechas sea sábado, domingo o feriado. Luego, toma el de esas fechas que fueron filtradas.

Puede ver aquí que tener datos seleccionados como una constante es una especie de apuesta en el suelo sobre la cual se evalúan todas las demás fechas antes o después.

Tenemos nuestra fecha seleccionada, y luego estamos filtrando todo lo que es anterior a eso. Estamos tomando el máximo de esa tabla filtrada. Entonces, lo que obtenemos es el máximo el día 15 cuando eliminamos todas esas otras condiciones es ese viernes 11. Luego, si bajamos a la declaración RETURN, comienza de nuevo con el día siguiente, el 16. Simplemente continúa iterando a través de la tabla hasta que llega al final de los datos.

Como puede ver en este caso, cuando colocamos las variables en la parte del iterador en lugar de la parte de la expresión, funciona exactamente como lo planeamos. Aprovecha el hecho de que las variables son constantes.


Uso de variables en LuckyTemplates: un ejemplo detallado
Cómo trabajar con fórmulas DAX extensas en LuckyTemplates: sugerencias de formato incluidas
Variables DAX y comentarios para simplificar fórmulas

Conclusión

En este blog, le mostré cómo aplicar variables DAX de LuckyTemplates en una medida y cómo funciona cuando las variables se colocan en la parte del iterador de una medida.

Espero que estos ejemplos expliquen la frase "las variables son constantes", brindándole una idea de quizás por qué sus medidas parecen funcionar y, a veces, no. Espero que esto le proporcione una comprensión general de lo que significa ese importante concepto.

¡Mis mejores deseos!


Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.