Optimización DAX: dónde encontrar la trampa DAX oculta

Optimización DAX: dónde encontrar la trampa DAX oculta

Quiero centrarme hoy en algo que llamo la trampa DAX oculta. Si se encuentra con esta situación, sentirá que está perdiendo la cabeza porque su DAX se verá bien, pero no funcionará. Lo guiaré cuando eso ocurra y lo que puede hacer al respecto, y en el proceso, también hablaré sobre algunas mejores prácticas generales de optimización de DAX. Puedes ver el video completo de este tutorial en la parte inferior de este blog.

Primero echemos un vistazo a lo que estamos trabajando aquí. Tenemos alrededor de 10 años de datos de Internet Movie Database. Las tablas de hechos son bastante simples y tenemos datos de calificación, datos de presupuesto y datos brutos.

Hoy, veremos los ingresos brutos mundiales.

Optimización DAX: dónde encontrar la trampa DAX oculta

También tenemos nuestra mesa de fechas extendida. Este será un análisis de inteligencia de tiempo basado en la tabla de fechas y la tabla de hechos.

Optimización DAX: dónde encontrar la trampa DAX oculta

Tabla de contenido

Total mundial bruto por año

Queremos hacer algo realmente común y simple. Nuestro total bruto mundial es solo una medida de suma agregada muy simple, que queremos convertir en un porcentaje.

Optimización DAX: dónde encontrar la trampa DAX oculta

Para hacer esto, tomamos el numerador ( medida Total Worldwide Gross ) y el denominador ( medida Total Worldwide Gross , pero eliminamos el contexto del filtro de año).

Optimización DAX: dónde encontrar la trampa DAX oculta

Utilicé la porque creo que es más intuitivo cuando lees el código, pero si prefieres la , funciona igual de bien. Simplemente dividimos el numerador por el denominador para obtener el resultado.

Si tomamos la medida resultante y la colocamos en nuestra tabla, verá que hace exactamente lo que esperamos que haga. Obtenemos el 100% en la parte inferior y obtenemos los años convertidos en sus porcentajes individuales. Hasta ahora todo bien, y todavía no hemos encontrado ningún problema.

Optimización DAX: dónde encontrar la trampa DAX oculta

Total mundial bruto por trimestre

Echemos un vistazo a una situación similar en la que vamos por trimestre. Esta medida podría ser útil porque existe la hipótesis de que los ingresos brutos de la temporada de películas de verano son diferentes desde el comienzo del año y hacia el final del año previo a la temporada de los Oscar.

Nuevamente, tenemos exactamente la misma medida con la función REMOVEFILTERS en los números de trimestre en lugar del año.

Optimización DAX: dónde encontrar la trampa DAX oculta

Y si colocamos la medida que acabamos de hacer en la tabla, también hace exactamente lo que esperábamos.

Optimización DAX: dónde encontrar la trampa DAX oculta

Total mundial bruto por mes y año

Echemos un vistazo al tercer caso, que puede ser muy común, donde queremos buscar por mes y año.

Optimización DAX: dónde encontrar la trampa DAX oculta

Y nuevamente, usaremos la misma medida que antes. Pero esta vez, eliminaremos el filtro por mes y año.

Optimización DAX: dónde encontrar la trampa DAX oculta

Dejemos eso en nuestra mesa. De repente no funciona.

Optimización DAX: dónde encontrar la trampa DAX oculta

Podemos decir lo que no funciona al respecto. Sabemos que la medida del bruto mundial funciona, lo que significa que el numerador está bien, pero el denominador no. En cada uno de los casos anteriores, la función REMOVEFILTERS eliminó el filtro correctamente, pero aquí claramente no lo hizo.

De hecho, podemos probar esto cambiando lo que devolvimos aquí en el resultado.

Optimización DAX: dónde encontrar la trampa DAX oculta

En lugar de Resultado, usemos Denominador. Tenga en cuenta que esto se formateará en un porcentaje, por lo que se verá un poco divertido.

Optimización DAX: dónde encontrar la trampa DAX oculta

Lo que deberíamos obtener para el denominador es el mismo número en cada fila, pero no lo es.

Optimización DAX: dónde encontrar la trampa DAX oculta

Podemos decir que no está eliminando el filtro en el mes y el año, y pensamos que es porque el mes y el año están en el texto.

Optimización DAX: dónde encontrar la trampa DAX oculta

Pero el anterior para el trimestre también se expresó en texto, por lo que no es simplemente porque es texto. Solo hay que arreglarlo. Una vez que suelta el campo sin ordenarlo, se ordenará alfabéticamente.

En la tabla de fecha extendida, echemos un vistazo a ese campo llamado Mes y año . Si lo miramos en la columna Ordenar por , veremos algo interesante.

Veremos que esa columna está ordenada por un número llamado MonthnYear. Cuando ordena una columna por otra, esa columna de ordenación en realidad se convierte en parte del contexto del filtro. Esto es lo que está echando a perder este cálculo.

Optimización DAX: dónde encontrar la trampa DAX oculta

Volvamos a nuestra medida y eliminemos el contexto del mes y año que estamos usando como ordenación.

Optimización DAX: dónde encontrar la trampa DAX oculta

Ahora estamos obteniendo exactamente lo que deberíamos, que es el mes y el año calculados como un porcentaje adecuado.

Optimización DAX: dónde encontrar la trampa DAX oculta

Al eliminar un contexto de filtro, se necesitarán dos campos para hacer esto cuando esté ordenado . Puede preguntar que en lugar de tener que hacer dos campos aquí, ¿por qué no podemos eliminar los filtros en toda la tabla de fechas?

La respuesta es que podemos, y esto funcionará para los tres ejemplos de los que hablamos porque cada una de esas columnas es parte de nuestra tabla de fechas. Eliminar todo el contexto de filtro en esa tabla funcionará para los tres casos, pero en realidad es una mala idea.

Como principio general de optimización de DAX, debe eliminar tanto contexto de filtro como sea necesario para obtener el resultado que desea.

En la mayoría de los casos, no presentará esto en un formato tabular. Lo presentará como una matriz y necesitará una medida más compleja porque tiene dos granularidades diferentes en la misma columna. Esta medida parece complicada, pero en realidad no lo es.

Optimización DAX: dónde encontrar la trampa DAX oculta

Esto es solo una extensión de lo que ya hemos hecho. La primera parte de este cálculo de optimización DAX muestra los denominadores para la granularidad diferente. Eliminamos el contexto de filtro para un mes, para el año y para toda la tabla.

Optimización DAX: dónde encontrar la trampa DAX oculta

Para la segunda parte del cálculo, usamos SWITCH TRUE. Para esta función hay que ir de lo más específico a lo menos específico. El mes es nuestro alcance más estricto y específico, así que aquí es donde comenzamos. Tendremos que eliminar el contexto usando esos dos campos que identificamos.

Optimización DAX: dónde encontrar la trampa DAX oculta

Para el alcance del año, tenemos que eliminar el contexto del año y eliminar el contexto de toda la tabla.

Optimización DAX: dónde encontrar la trampa DAX oculta

Echemos un vistazo a lo que sucede si tomamos y eliminamos el contexto en toda la tabla de fechas . Usaremos una medida diferente que elimina el contexto en toda la tabla de fechas para los tres casos.

Optimización DAX: dónde encontrar la trampa DAX oculta

Veremos que la medida está eliminando demasiado el contexto. En lugar de calcular la contribución de cada mes a ese año, está calculando la contribución de ese mes a todo el conjunto de datos. Esto no es lo que queremos que suceda porque eliminar el contexto de toda la tabla es realmente solo un instrumento contundente cuando se necesita un bisturí.

Conclusión

Hay muchos casos en los que tiene una matriz y necesita controlar cuidadosamente qué contexto elimina. Simplemente eliminar el contexto en toda la tabla causará este tipo de problemas.

Espero que cuando surja esta situación (que invariablemente lo hará, en algún momento), la reconocerá como la trampa oculta que hemos discutido en esta publicación de optimización de DAX, y podrá evitarla sin la misma frustración. que me causó cuando lo vi por primera vez y no pude entender por qué mi DAX no funcionaba correctamente.

Si disfrutó del tema de optimización DAX cubierto en este tutorial en particular, suscríbase al canal de televisión LuckyTemplates . Tenemos una gran cantidad de contenido que sale todo el tiempo de mí y una variedad de creadores de contenido, todos los cuales están dedicados a mejorar la forma en que usa LuckyTemplates y Power Platform.


Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Cómo guardar y cargar un archivo RDS en R

Cómo guardar y cargar un archivo RDS en R

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.

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

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.

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

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.

Introducción al contexto de filtro en LuckyTemplates

Introducción al contexto de filtro en LuckyTemplates

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.

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

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.

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

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.

Ideas de materialización para cachés de datos en DAX Studio

Ideas de materialización para cachés de datos en DAX Studio

Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.

Informes comerciales con LuckyTemplates

Informes comerciales con LuckyTemplates

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

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber