Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
En este tutorial, les mostraré un análisis detallado de las medidas de DAX sobre cómo armé una de mis páginas favoritas en el informe que envié para el 10.° LuckyTemplates Challenge.
La página de clasificaciones utiliza muchas medidas DAX desafiantes. Pero con la ayuda de uno de nuestros expertos en LuckyTemplates, Antriksh Sharma, además de algunas ramificaciones de medidas, pude obtener los resultados que quería.
Tabla de contenido
Descripción general de la página de clasificaciones
Antes de pasar a nuestro análisis de medidas DAX, quiero mostrarles las diferentes partes de la página en las que estamos trabajando hoy.
Así es como se ve la página de Rankings . A diferencia de las otras páginas de mi informe, esta contiene principalmente tarjetas.
Cada una de estas tarjetas se creó con la tarjeta visual integrada en el escritorio de LuckyTemplates en el panel Visualizaciones.
Le permite navegar de regreso a otras páginas en el informe a través de estos íconos aquí en la parte superior.
Discutí las otras páginas de este informe en los otros tutoriales. Si ve las otras páginas de este informe, verá que también tienen íconos que conducen a esta página de Clasificaciones .
El lado izquierdo de la página muestra las cuatro principales plantas y proveedores en general, mientras que el lado derecho muestra los cuatro últimos.
También creé medidas DAX individuales para obtener resultados más específicos. Estos tres en la parte superior, por ejemplo, muestran las cuatro plantas y proveedores principales y los cuatro inferiores en función de los minutos de tiempo de inactividad , los minutos de tiempo de inactividad promedio y los defectos .
Fui aún más específico en la parte inferior de la página del informe. En el lado izquierdo, obtuve las cuatro plantas superiores y las cuatro inferiores en función de los minutos de tiempo de inactividad, los minutos de tiempo de inactividad promedio y los defectos.
A la derecha, hice lo mismo, pero esta vez me basé en los detalles del proveedor.
A medida que avance en este tutorial, les contaré la historia de cómo se me ocurrió la idea de esta página. Luego, le daré un desglose paso a paso sobre cómo se crearon cada una de estas medidas.
Obtener ideas para las medidas DAX a utilizar
Obtuve la idea de las medidas DAX en esta diapositiva de uno de nuestros , Antriksh. Es un gurú de DAX y es excelente para optimizar medidas. Fue divertido trabajar con él en este análisis de medidas DAX.
Alrededor de dos semanas antes de que se anunciara el 10.º LuckyTemplates Challenge, tuvimos una conversación por Skype sobre un archivo PBIX que publicó en el foro LuckyTemplates.
Como puede ver, incluí una foto de Antriksh porque él fue la inspiración detrás de la página que discutiremos aquí. Le dije que le daría crédito cuando terminara este tutorial.
El modelo es simple y usa algunos datos básicos como Cliente, Productos y Ventas.
Tiene una breve lista de países en el lado izquierdo.
Antriksh creó una medida para los N países principales por ventas . Tengo la lista ordenada de mayor a menor, como indica la flecha hacia abajo.
A la derecha, hay una tarjeta que muestra los cuatro primeros y los cuatro últimos países. La lista de los cuatro primeros muestra a Estados Unidos , Australia , el Reino Unido y Alemania , que coinciden con los cuatro primeros de la lista.
Sin embargo, los cuatro últimos aparecen en el orden opuesto. En lugar de ir desde abajo, que es Armenia , comenzó en el quinto lugar de la lista, que es Kirguistán .
Es por eso que hice otra tarjeta en la parte inferior que utiliza una versión revisada de la medida utilizada anteriormente.
Observe que los cuatro últimos ahora coinciden con el orden que yo quería: Armenia , Tailandia , Siria y Kirguistán .
Vayamos a las medidas DAX detrás de estas tarjetas. Comenzaré con la medida que creó Antriksh para la primera tarjeta.
La medida original tiene más de 97 filas para obtener los resultados que vimos en esa primera tarjeta.
Cuando nos desplazamos hacia abajo hasta la fila 20, podemos ver que Antriksh usó ASC . Esa es la razón por la que los últimos cuatro se presentaron de la manera que lo hizo.
Ahora que sé dónde comenzó el problema, les mostraré cómo se ve mi medida revisada.
Permítame resaltar la segunda tarjeta para que pueda mostrarle la medida detrás de ella.
Como puede ver, solo hay 41 filas en mi fórmula revisada.
Trabajé con Antriksh para encogerlo un 60% o 70% respecto a la medida original. No solo es menos complicado, también me da los resultados que necesito: los cuatro primeros comienzan del 1 al 4 y los cuatro inferiores comienzan del 8 al 5.
Un par de semanas después de mi conversación con Antriksh, se lanzó el 10.º LuckyTemplates Challenge. Parte de los requisitos implicaba un sistema de clasificación, lo que me hizo recordar la medida DAX de Antriksh. Me di cuenta de que puedo copiar y pegar la medida, luego aplicar algunas ramificaciones de medidas para obtener los resultados que necesito.
Análisis de medidas Dax: Construyendo la medida paso a paso
Ahora, voy a desglosar las medidas que usé para la página de clasificaciones para obtener los resultados que quería. Este análisis de medida DAX puede ayudarme a explicar cómo funciona la medida, teniendo en cuenta cuántas filas se necesitaron para completarla.
En mis otros tutoriales, he mostrado cómo me gusta agrupar mis medidas para hacer las cosas más organizadas . Así que creé una subcarpeta para Top N v2.
Dentro de esta carpeta se encuentra mi medida de los minutos de tiempo de inactividad de los principales proveedores de N plantas . Verá que tiene las mismas 41 líneas de código que le mostré antes mientras discutíamos la medida de Antriksh. Básicamente, todo lo que tenía que hacer era reemplazar algunos elementos para obtener los resultados que deseaba.
Para desglosarlo mejor, dividí toda esta medida en 9 partes diferentes. Repasaré cada uno de estos pasos del uno al nueve y explicaré lo que está logrando cada uno de ellos.
La medida utiliza una serie de variables para que pueda obtener resultados más claros. Establecer estas variables ayuda al usuario final a ver cómo se combina la medida y explica los detalles de cómo obtuve cada resultado.
Comencemos con el primer paso, que establece el llamado BaseTable.
En esta tabla base, puede ver que estoy haciendo referencia a los datos para la ubicación de la planta y el proveedor .
Cuando regrese al archivo PBIX, verá la tarjeta superior que hace referencia tanto a las plantas como a los proveedores. Es por eso que necesito todos los datos aquí, a diferencia de la tarjeta que se encuentra más abajo, que también es para los minutos de tiempo de inactividad, pero solo usa datos de ubicación de la planta.
Dado que el primer paso es sencillo, pasemos al paso dos.
El segundo paso comienza con la función .
Esta función hace referencia a la variable que creé en el paso 1 y los minutos de inactividad .
Se asegura de que aparezca un valor al juntar las funciones y . También quiero que los resultados sean mayores o iguales a cero. Esto se debe a que el conjunto de datos utilizado para este informe incluía algunas combinaciones en las que la planta o el proveedor están en blanco. También hay entradas donde el valor es cero.
El tercer paso implica otro conjunto de variables, comenzando con el valor de N.
Aquí, N es igual a 4 porque quiero que aparezcan los cuatro primeros y los cuatro últimos.
También establece un prefijo para Top & N, además de un guión.
Cuando se junta, simplemente quiere mostrar "Top 4 -", que es como comienza la tarjeta correspondiente antes de enumerar los resultados esperados.
Ahora, vayamos al cuarto paso. Aquí es donde empiezo a obtener los resultados esperados.
Algunos pensarían en usar en este caso. Después de todo, intento clasificar las entradas y obtener los mejores resultados. Sin embargo, Antriksh y yo sentimos que sería más apropiado en este caso, ya que solo necesitamos los cuatro primeros en orden ASC .
A continuación, utilicé la función , que utiliza los datos de ubicación de la planta.
También establece el formato de cómo quiero que se muestre la lista. Es por eso que verá que tiene una barra invertida y una coma, además de comillas para indicar espacios. También está configurado en orden ASC , por lo que si vuelvo al archivo PBIX, verá la lista de los cuatro primeros con barras invertidas y comas entre los resultados.
The fifth step of the measure starts by replacing the last comma on the list with an And.
When you go back to the slide, you’ll see that the last entry does have an “and” before the vendor and plant location.
This is what’s being accomplished in step five. It’s creating a list and using the function for the LastCommaPosition.
Notice that this says that N is greater than 2. This means that the substitution happens after the 3rd string.
The sixth step will look familiar because it basically copies the same thing I did on top to start the list with “Top 4 -“.
The only difference here is that I want it to show up as “Bottom 4 -” instead of “Top 4 -“.
The part I previously discussed about using is once again used here at the bottom, but now I’m calling the variable BottomData instead of TopData. Again, this part inserts the backslash and comma in between the names of the plants and vendors.
When we look back at Antriksh’s original measure, this is also the same part where he used ASC, which resulted in the list coming out not as I expected. That’s why I’m using DESC here instead.
So basically, at this point onwards, most of it is just copied and pasted from the earlier parts of the measure. I’m just replacing the word “Top” with “Bottom” in most cases.
For step 8, I want to change the last comma with the word And.
The ninth step wraps up this measure.
This uses the function with the number 10. This ensures that the Top 4 and the Bottom 4 are showing up on separate lines. Think about it as the return key on your keyboard. It makes you go down to the next row so that the top and bottom four don’t show up on a single line.
Verifying The Results
Antriksh and I were able to trim down the original 90 plus rows of DAX into 41 lines. However, 41 lines might still be a lot for some users. Breaking down that measure the way we did was a great way to understand why the measure had to be written that way.
Ahora que he explicado de qué se trata cada paso, es hora de verificar si esa medida realmente hace lo que se supone que debe hacer. Vayamos a la página de Rankings y verifiquemos los resultados con la otra parte del informe.
Comenzaré con Plantas/Proveedores por minutos de tiempo de inactividad .
Esto muestra los cuatro primeros como Linktype en New Britain, Flashpoint en Frazer, Quinu en Twin Rocks y Layo en Henning. En cuanto a los cuatro últimos, muestra a Wikido en Middletown como el peor en general.
Ahora, me dirigiré a la página de Proveedores y plantas combinados para ver si los resultados coinciden.
Con la columna Clasificar por minutos de tiempo de inactividad ordenada de arriba a abajo, muestra el resultado correcto para los cuatro primeros.
Sin embargo, algunos de ustedes podrían preguntarse por qué New Britain aparece en segundo lugar en esta lista, cuando aparece en la parte superior de la tarjeta de la página de Clasificación .
Tenga en cuenta que la clasificación muestra tres entradas como 1 superior. Estas se clasificaron utilizando RANKX.
Sin embargo, si observa la columna de Minutos de tiempo de inactividad , muestra que New Britain muestra 0 mientras que Frazer y Twin Rocks muestran 1 cada uno. incluso si todos estuvieran clasificados como el número uno.
Ahora, verifiquemos si los cuatro últimos son correctos. Simplemente ordene la clasificación por minutos de tiempo de inactividad en orden descendente.
Como puede ver, muestra a Middletown, Waldoboro, Barling y Chesaning como los cuatro últimos en la tarjeta. Esto significa que la medida de Plantas/Proveedores Por Minutos de Inactividad es correcta.
Ahora, echemos un vistazo a la tarjeta de Plantas por minutos de tiempo de inactividad .
Esto muestra que los cuatro primeros son Reading, Middletown, Waldoboro y Clarksville. Los cuatro últimos son Riverside, Charles City, Twin Rocks y Chesaning.
Para verificar estos resultados, revisaré la página Plantas y veré si los resultados coinciden. La mayor diferencia aquí es que la tarjeta que verificamos anteriormente se basó en los datos de las plantas y los proveedores, mientras que esta solo analiza los datos de las plantas.
Cuando ordenamos la clasificación por minutos de tiempo de inactividad de arriba a abajo, muestra que los cuatro primeros son Reading, Middletown, Waldoboro y Clarksville.
Ahora, invirtamos el rango esta vez para ver si los cuatro últimos coinciden. Verá que, de las 30 plantas de nuestra lista, Riverside, Charles City, Twin Rocks y Chesaning ocupan los últimos lugares.
Esto significa que estamos viendo los resultados correctos para las plantas.
Esta vez, veamos una tarjeta que clasifica a los proveedores por defectos .
Iré a la página de proveedores esta vez para ver si Dablist es el principal proveedor y Yombu es el peor según los defectos.
Cuando ordenamos a los proveedores de mejor a peor, parece que los cuatro primeros coinciden con la tarjeta en la página de clasificaciones .
Permítanme cambiar la clasificación de peor a mejor y ver si los cuatro últimos también coinciden.
Verás que Yombu es de hecho el peor, junto con los otros tres incluidos en la lista de los cuatro últimos de la tarjeta.
Análisis de medidas de Dax: aplicación de bifurcaciones de medidas
El análisis de la medida DAX que hicimos anteriormente solo analizó la medida detrás de las plantas/proveedores por minutos de tiempo de inactividad . Pero, ¿cómo trabajé las medidas para las otras tarjetas? Aquí es donde entra en juego la ramificación de medidas .
La bifurcación de medidas implica el uso de una medida existente para derivar otros resultados.
En este informe, simplemente copié y pegué la medida que discutimos anteriormente y cambié algunos de los elementos para que se ajusten a lo que necesito.
El nombre de la medida es obviamente lo primero que voy a cambiar. Pero más que eso, también necesito cambiar los datos a los que hago referencia. Por ejemplo, usamos la ubicación de la planta y los datos del proveedor para nuestra medida original.
Pero si voy a usar la misma medida para Plantas por minutos de tiempo de inactividad , entonces tendría que eliminar los datos del proveedor y solo concentrarme en la ubicación de la planta.
Tendré que cambiar eso para todas las demás partes de la misma medida que también hace referencia a ambos conjuntos de datos, como cuando usé CONCATENATEX .
Lo mismo ocurre con los minutos de inactividad . Si tuviera que trabajar en una tarjeta que analiza el Promedio de minutos de tiempo de inactividad o Defectos , entonces todo lo que tengo que hacer es cambiar esta parte.
En cuanto a la parte donde dice "@DowntimeMins" en la medida, no estaría de más mantenerla así incluso si estoy haciendo referencia a mis Defectos o mi Promedio de minutos de tiempo de inactividad.
Pero si eres del tipo al que le gusta mantener las cosas en cierto orden, también puedes cambiarlo. Solo recuerda que si cambias esto, tendrás que cambiarlo en toda la página. Eso significa hacer un esfuerzo adicional para obtener los mismos resultados.
Puede imaginar cuánto tiempo ahorré al usar la ramificación de medidas . Hacerlo de esta manera significa que no tendré que seguir creando nuevas medidas para cada parte del informe en el que trabajo. Solo necesito ajustar la medida existente en función de los resultados que quiero ver, lo que reduce considerablemente el tiempo de desarrollo de mi informe.
Para mostrarle cómo lo hice, echemos un vistazo a los proveedores por minutos de tiempo de inactividad .
Cuando levante la medida, verá que tiene las mismas 41 filas que Plantas/Proveedores por minutos de tiempo de inactividad .
Sin embargo, en el paso 1, solo hice referencia a los datos del proveedor y eliminé la ubicación de la planta.
Cambié los datos en otros lugares donde también es aplicable.
Retuve Minutos de tiempo de inactividad ya que esto es en lo que estoy basando los resultados.
Esas son soluciones rápidas a la medida para que pueda aplicarse a las otras áreas del informe.
Déjame mostrarte otro ejemplo aquí. Esta vez, echemos un vistazo a los proveedores por defectos .
Una vez más, solo estamos mirando al proveedor aquí.
Lo que cambié aquí es la referencia a Minutos de tiempo de inactividad . En cambio, usé Defectos .
También me aseguré de que las otras filas sigan usando los datos del proveedor.
Medidas DAX en LuckyTemplates Uso de bifurcación de medidas
Implementación de grupos de medidas DAX en sus informes: una revisión de modelado de LuckyTemplates
Extracción de información única en LuckyTemplates mediante clasificación de medidas DAX
Conclusión
Ese fue un poderoso trabajo DAX de Antriksh. Definitivamente disfruté trabajar con él , ramificarlo y aplicarlo a las diferentes partes de mi informe .
El análisis en profundidad de la medida DAX que hicimos también fue una excelente manera de comprender todos los aspectos del proceso. Trabajar en una medida larga puede parecer desalentador al principio, pero un análisis exhaustivo de la medida DAX como este puede ayudar a resolver las cosas.
Trabajar en esta página también enfatizó la importancia de tener una comunidad colaborativa como la que tenemos aquí en LuckyTemplates. Es genial que todos tengan la oportunidad de trabajar con personas como Antriksh, así como con otros miembros y expertos que también tienen algunos consejos y trucos propios.
Mis mejores deseos,
Jarrett
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