Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
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.
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.
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.
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).
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.
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.
Y si colocamos la medida que acabamos de hacer en la tabla, también hace exactamente lo que esperábamos.
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.
Y nuevamente, usaremos la misma medida que antes. Pero esta vez, eliminaremos el filtro por mes y año.
Dejemos eso en nuestra mesa. De repente no funciona.
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.
En lugar de Resultado, usemos Denominador. Tenga en cuenta que esto se formateará en un porcentaje, por lo que se verá un poco divertido.
Lo que deberíamos obtener para el denominador es el mismo número en cada fila, pero no lo es.
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.
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.
Volvamos a nuestra medida y eliminemos el contexto del mes y año que estamos usando como ordenación.
Ahora estamos obteniendo exactamente lo que deberíamos, que es el mes y el año calculados como un porcentaje adecuado.
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.
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.
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.
Para el alcance del año, tenemos que eliminar el contexto del año y eliminar el contexto de toda la tabla.
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.
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
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