Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
Echemos otro vistazo al problema discutido en este tutorial , que comparó dinámicamente los primeros N días hábiles de cada mes. Este problema se basó en una consulta de un miembro de LuckyTemplates en nuestro foro, donde quería buscar y comparar dinámicamente los primeros 5, 10, 15 y 20 días facturables (los que no son fines de semana ni festivos) de un mes determinado con el mes anterior.
En lugar de utilizar Power Query, propondremos una solución de lenguaje de codificación DAX. Puedes ver el video completo de este tutorial en la parte inferior de este blog.
En el primer video , se me ocurrió una solución de consulta de energía sobre cómo resolver este problema. Pero luego, uno de nuestros expertos de LuckyTemplates, Antriksh Sharma, ideó una medida brillantemente eficiente en la que también vale la pena profundizar. Analizaremos algunas de las técnicas que usó para desarrollar una medida, que le brindarán herramientas adicionales en su caja de herramientas DAX.
Ciertamente lo hizo para mí y para algunos de los otros expertos que echaron un vistazo a esto. La comparación similar de días hábiles comparables entre meses es un patrón valioso en general que se puede usar en muchas situaciones.
Profundicemos en Power Query y echemos un vistazo a lo que hizo Antriksh aquí. Tenemos el mes y el año , las ventas totales y, por último, las ventas totales de N días hábiles que seleccionamos mediante la consulta avanzada en función del parámetro hipotético que desarrollamos.
Antriksh tomó un enfoque muy diferente, donde usó una medida sorprendentemente corta para resolver todo este problema. Lo primero que noté sobre esto fue el uso del comando .
Esta es una función DAX que no uso muy a menudo, pero es perfecta para este tipo de problema. Si echamos un vistazo a la Guía SQL BI DAX, dice que la función GENERAR es una función de tabla que usa como entrada dos tablas diferentes, y luego hace un equivalente del comando SQL CROSS APPLY.
Así que toma una tabla base (Tabla 1) e itera sobre eso, y luego toma una segunda expresión de tabla y la evalúa para cada fila en la primera tabla, y luego regresa a la tabla como salida.
Tomemos la medida de Antriksh y colóquela en la mesa. Podemos ver que produce exactamente los mismos resultados que la solución de consulta de energía que hicimos la última vez. Así que eso es bueno y valida ambas medidas bastante bien.
Desmontemos esta medida aparte. El primer filtro aplicado aquí es Fechas[IsBusinessDay] = TRUE. Esto elimina todas las fechas que no son de fin de semana ni de vacaciones según el campo IsBusinessDay de la tabla de fechas extendida.
Hablamos mucho más sobre esto en el primer tutorial , donde también explicamos cómo vincular eso a nuestra mesa festiva.
La parte interesante de esto realmente viene en las dos entradas de la tabla. La primera tabla es solo una tabla de una columna del campo Mes y año en la tabla Fecha.
Pero la entrada de la segunda tabla es donde suceden las cosas interesantes. Antriksh usó una y luego usó nuestro parámetro dinámico como el número de filas en el TOPN.
La medida Ventas totales se adjunta a la segunda tabla y luego se aplica a la primera tabla.
Tabla de contenido
Comprensión de una medida compleja mediante el lenguaje de codificación DAX
Una de las formas más fáciles de averiguar qué está haciendo una medida compleja como esta es ir al Editor Tabular . Podemos echar un vistazo a esta expresión y averiguar qué está haciendo esta expresión TOPN primero.
Copiemos la parte TOPN y creemos una nueva consulta DAX . Recuerde que las consultas DAX comienzan con EVALUATE.
Cuando peguemos la porción TOPN, veremos que esto está extrayendo las primeras 5 fechas de la tabla de órdenes de venta. Hay una tabla en el TOPN que se compone de los valores de todas las fechas de pedido dentro de la tabla de ventas.
Esta función TOPN toma el valor del parámetro hipotético (que en este caso es 5) y lo aplica al campo de fecha del pedido de ventas. Luego, extrae las primeras 5 fechas dentro del contexto del filtro en orden ascendente según ese campo.
Dado que no hay un contexto de filtro adicional, solo está extrayendo esas primeras 5 fechas de toda la tabla.
La columna @Sales solo agrega las ventas totales dentro del contexto de filtro adecuado a la tabla TOPN.
Hasta ahora, tenemos la primera tabla de Mes y año, la segunda tabla de TOPN de las primeras N fechas de la tabla de ventas y luego las ventas totales asociadas con eso.
Uso de la tabla GENERATE en lenguaje de codificación DAX
Echemos un vistazo a lo que está haciendo esta tabla GENERATE. Volveremos a Tabular Editor y crearemos una nueva consulta DAX.
Comenzaremos como siempre lo hacemos con EVALUAR, pegaremos la parte GENERAR del código y haremos clic en 5.
Podemos ver que para cada fila de la primera tabla, se está iterando y uniendo con las 5 filas de la tabla TOPN evaluadas en contexto con la función @Sales.
Ha tomado los primeros 5 días hábiles de abril, los primeros 5 días hábiles de mayo, los primeros 5 días hábiles de junio, y así sucesivamente hasta llegar al final de la primera tabla.
Esto es exactamente lo que necesitamos, y ahora se convierte en una cuestión relativamente simple de sumar esos valores. Tenemos el resultado (que es la variable de tabla de los resultados GENERAR) y luego necesitamos resumir la función @Sales.
Dentro del contexto, ahora estamos sumando los primeros 5 días hábiles en abril, los primeros 5 días hábiles en mayo, y así sucesivamente hasta llegar a nuestro total de $23,737,430, en cuyo caso no tiene contexto de mes y año para operar .
Esto resume toda la columna @Sales y nos da exactamente el mismo total que teníamos en nuestra solución de consulta de energía.
Puede ver que si cambiamos la segmentación a 10, obtenemos dinámicamente los mismos resultados con el lenguaje de codificación DAX que obtuvimos en Power Query.
También tenemos el gráfico de barras en la parte inferior que se ajusta dinámicamente para reflejar los cambios que hemos realizado.
Ajustar dinámicamente el título de la medida
Hay otro truco adicional que quería mostrarte. Puede crear un ajuste dinámico en su parámetro hipotético y vincularlo dinámicamente a un título de medida.
Por ejemplo, si cambiamos la segmentación en la parte superior a 15, cambiará dinámicamente el nombre de la medida en la parte inferior a Ventas totales para los primeros 15 días hábiles de cada mes .
Hay una manera fácil de hacer esto en DAX usando el formato condicional . Básicamente solo tomamos tres cuerdas. El primero es Total Sales for First , y luego concatenar eso con el valor que recolectamos del parámetro what-if, y luego simplemente vincularlo con el resto del título.
Luego vamos a lo visual, vamos a formato condicional del título y hacemos clic en fx .
Aplicaremos formato por valor de campo y elegiremos esa medida de título dinámico. Esto cambiará la selección del parámetro hipotético.
Conclusión
Lo que tenemos ahora es una solución completa que utiliza el lenguaje de codificación DAX. Hemos discutido una forma realmente creativa y eficiente de hacerlo usando la función GENERAR. Quiero agradecer a Antriksh por compartir su brillante conocimiento de DAX con nosotros. Aprendí mucho mientras revisaba su solución DAX, y espero que tú también lo hayas hecho.
Qué es uno mismo en Python: ejemplos del mundo real
Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.
En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.
Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.
En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.
Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.
Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.
Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.
Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.
¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber