Código M en columnas personalizadas de Power Query | BI de energía

Código M en columnas personalizadas de Power Query | BI de energía

En el blog de hoy, presentaré la solución al LuckyTemplates , que incluye un marco simple y generalizable para incorporar código M en una columna personalizada de Power Query. Puede ver el video completo de este tutorial en la parte inferior de este blog.

Ser capaz de crear columnas en Power Query usando código M aumenta su capacidad para resolver problemas más complejos.

Antes de entrar en la solución, revisemos la naturaleza del problema. He dado un gran conjunto de datos de Kaggle de 93 años de datos de Oscar. Queríamos seleccionar a la mejor actriz, a las ganadoras y, en particular, a aquellas mujeres que habían ganado más de un premio a la mejor actriz y luego visualizar usando la línea de tiempo de Queryon el año en el que ganaron su segundo premio.

Código M en columnas personalizadas de Power Query |  BI de energía

Tenía varios objetivos al armar este problema. ¿En qué queremos que se centre el problema y cuáles queremos que sean los objetivos principales?

Y en este, había tres de ellos.

El primero fue aprender o desarrollar alguna práctica con el constructo Agrupar por y Todas las filas . Es algo en lo que realmente me he centrado porque resuelve una amplia gama de problemas de manera bastante simple y, a menudo, elimina la necesidad de un DAX muy complejo.

El segundo objetivo es particularmente para las personas que no estaban acostumbradas a trabajar en M. Quería crear un problema que desarrollara cierta comodidad al escribir código M básico . Quería forzar ese modo de pensar sobre cómo es desarrollar código M básico y el proceso para hacerlo.

Según un capítulo del libro de Gil Raviv sobre Power Query, alrededor del 40% de los problemas en Power Query se pueden resolver simplemente a través de la interfaz de usuario. Pero eso, con la adición de un código M básico y la capacidad de crear columnas personalizadas, en realidad no es tan difícil. Puede aumentar ese porcentaje en más del 80%. Puede duplicar sus capacidades de resolución de problemas con algunas habilidades fundamentales y simples.

Lo tercero que quiero hacer es presentar el visual personalizado de Queryon Timeline a aquellos que no están familiarizados con él. Es uno que realmente he llegado a amar. Lo he usado en varios casos diferentes y creo que proporciona una forma realmente única de visualizar datos.

Tabla de contenido

Enfoque de solución al problema de la semana #9

Al pensar en este problema, quería hacer un experimento mental. ¿Qué pasaría si en lugar de un archivo CSV, solo le diera 93 hojas de papel (una con la ganadora de la Mejor Actriz de cada año), cuál sería la solución?

Su solución probablemente se parecería a lo que tengo a continuación.

Código M en columnas personalizadas de Power Query |  BI de energía

Creo que todo el mundo tendría una solución relativamente similar a eso. Una vez que tenga esa solución conceptual, solo es cuestión de descubrir cómo hacer que Power Query ejecute cada uno de esos pasos.

Entonces, tomaré esto como un esquema general y luego explicaré cómo operacionalizan esta solución conceptual en algo en Power Query. El enfoque que vamos a utilizar es lo que Melissa, nuestra gurú residente de Power Query, denomina aprender mediante Google.

Ahora, si volvemos a nuestro modelo conceptual, los dos primeros pasos incluyen clasificar las papeletas en grupos por actriz y descartar cualquier grupo que tenga una sola papeleta. Entonces, queremos hacer un conteo. Si no sabemos cómo hacerlo, podemos ir a Google e intentar buscar un término. En este ejemplo, probé "grupo en consulta de energía". Con eso, podemos encontrar todo lo que necesitamos saber sobre cómo hacer esta agrupación.

Código M en columnas personalizadas de Power Query |  BI de energía

Uso de Agrupar por en Power Query

Luego podemos acceder a Power Query y comenzar a poner en funcionamiento nuestra solución. Lo que hice es que en la tabla de este Oscar, revisé y saqué el archivo CSV y filtré hasta los ganadores de la Mejor Actriz para cada año. Entonces, solo tenemos las 93 filas de solo Nombre y el Año de la película.

Código M en columnas personalizadas de Power Query |  BI de energía

Si vamos a Power Query y vamos a esa tabla, lo primero que queremos hacer es este Agrupar por .

Código M en columnas personalizadas de Power Query |  BI de energía

Siempre me gustó ir a Avanzado solo porque proporciona una interfaz ligeramente mejor, incluso si lo que estamos haciendo es bastante sencillo.

Queremos agrupar por Nombre , luego tengamos una columna, AllData , y esta será nuestra Todas las filas. En lugar de devolver solo el agregado, devolverá la agregación, pero con todas las filas que queremos que permanezcan intactas.

Tendremos otra columna llamada Count y la queremos cuando vayamos a Count Rows . Queremos encontrar el número de papelitos en cada pila. Luego, hacemos clic en Aceptar.

Código M en columnas personalizadas de Power Query |  BI de energía

Luego podemos hacer clic en este espacio en blanco en la tabla y obtenemos solo un recibo.

Código M en columnas personalizadas de Power Query |  BI de energía

Pero luego, para los que tienen varios recuentos, verá que obtenemos todos los registros.

Código M en columnas personalizadas de Power Query |  BI de energía

A continuación, queremos filtrar los unos (1). Entonces, básicamente estamos tirando a la basura todas esas pilas que solo tienen un nombre. Seleccione 1 y haga clic en Aceptar.

Código M en columnas personalizadas de Power Query |  BI de energía

Y ahora nos encontramos con los 14 ganadores de premios múltiples. Y ahora nos encontramos con los 14 ganadores de premios múltiples. Si tomamos y expandimos eso, podemos quitar Name porque ya tenemos Name aquí y solo mantenemos year_film .

Código M en columnas personalizadas de Power Query |  BI de energía

Ahora estamos en 30 filas porque algunas de ellas van a tener múltiples ganancias. E incluso podemos deshacernos de la columna Contar porque ya eliminamos los 1 con solo uno.

Código M en columnas personalizadas de Power Query |  BI de energía

Ahora vamos a pasar a la siguiente fase de nuestro modelo conceptual, que consiste en ordenar los recibos en cada grupo por fecha ascendente y luego elegir el segundo día que ocurre dentro de cada grupo.

Ordenar es fácil. Podemos volver a Power Query y hacer una ordenación ascendente por actriz y luego por fecha.

Código M en columnas personalizadas de Power Query |  BI de energía

Y te mostrará un uno y un dos.

Código M en columnas personalizadas de Power Query |  BI de energía

Así que estamos bien ordenados, y ahora queremos tener un índice o una clasificación que tenga para cada uno, y luego poder tomar el segundo en cada pila.

Incorporación del código Table.AddIndexColumn M

Y ahora volvemos a nuestro enfoque de "aprendizaje en Google", en el que solo podemos buscar rango o índice, pero también podemos ir a la Guía de referencia de Microsoft . Creé una herramienta externa que uso todo el tiempo que simplemente lo lleva de LuckyTemplates a la Guía de referencia de Microsoft.

Código M en columnas personalizadas de Power Query |  BI de energía

En la Guía de referencia de Microsoft, todo está agrupado por función y tiene un cuadro de filtro donde puedes buscar lo que necesites. En este caso, escribimos Rango o Índice en el cuadro de filtro. No nos da nada para Rank, pero para Index tenemos esta Table.AddIndexColumn , que es relevante y aplicable a lo que estamos buscando. También proporciona algunos ejemplos de cómo usar esta función.

Código M en columnas personalizadas de Power Query |  BI de energía

Vayamos a Power Query y reagrupemos nuestra tabla por Actriz.

Código M en columnas personalizadas de Power Query |  BI de energía

Con eso, obtenemos el grupo de 14 ganadores por Tabla. Y si entramos en cualquiera de estas tablas, digamos, Frances McDormand, podemos ver que la tabla está ordenada por fecha.

Código M en columnas personalizadas de Power Query |  BI de energía

Y luego, aquí está el gran paso, que es agregar una columna personalizada de Power Query e ingresar nuestro código M. Tendremos Table.AddIndexColumn , luego agregaremos el campo AllData . Llamaremos a nuestra nueva columna (como texto) aquí como Índice , y comenzaremos nuestro Índice en uno (1) y lo incrementaremos en uno (1).

Código M en columnas personalizadas de Power Query |  BI de energía

Y obtenemos este índice perfecto aquí.

Código M en columnas personalizadas de Power Query |  BI de energía

Ahora, podemos eliminar nuestra columna AllData aquí ya que todo se recoge en Custom . A continuación, podemos simplemente expandir la columna Personalizada, quitar el Nombre, porque ya tenemos el Nombre aquí también. Con eso, lo que tenemos es ese índice numerado para cada uno.

Código M en columnas personalizadas de Power Query |  BI de energía

Por último, podemos hacer lo que hicimos en Count, que es filtrar todos los que están en la segunda victoria.

Código M en columnas personalizadas de Power Query |  BI de energía

Y ahí vamos. Ahí está nuestra solución.

Código M en columnas personalizadas de Power Query |  BI de energía

Visualización mediante Queryon Timeline Custom Visual

Hay un par de otras cosas que queremos hacer aquí, que se basan en la implementación de Queryon Visual . Vamos a hacer una combinación y simplemente agregar la URL de la imagen.

Así que fusionaremos las consultas, abriremos la tabla Actrices y nos fusionaremos en Name . Obtenemos coincidencias de 14 a 14 filas, lo cual es bueno.

Código M en columnas personalizadas de Power Query |  BI de energía

Y luego, en la columna Actrices, nos expandiremos y nos expandiremos a la URL.

Código M en columnas personalizadas de Power Query |  BI de energía

Y ahora tenemos esta columna con las URL.

Código M en columnas personalizadas de Power Query |  BI de energía

Hay otra cosa que viene con el conocimiento de la línea de tiempo de Queryon. Queryon funciona mejor cuando se trata de fechas completas en lugar de años . Entonces, esto es algo que solo viene con la experimentación, pero podemos tomar la columna Año y crear una Columna a partir de ejemplos . Lo que queremos hacer aquí es convertir los años en fechas.

Código M en columnas personalizadas de Power Query |  BI de energía

Eso va a mejorar el formato. Eso es algo que no esperaría que supieras desde el principio, pero viene con la práctica con Queryon. Hacemos clic en Aceptar, y eso entra como un valor de fecha. Podemos eliminar la tabla de índice porque ya no la necesitamos, y luego podemos cambiar el nombre de la columna year_film a Year .

Código M en columnas personalizadas de Power Query |  BI de energía

Pasemos ahora al aspecto de visualización de esto y quiero resaltar la entrada de uno de los miembros de LuckyTemplates, José, quien realmente hizo un gran trabajo visualizando.

Código M en columnas personalizadas de Power Query |  BI de energía

Volviendo a Power Query para la visualización, vale la pena mencionar que Microsoft implementó recientemente algunos cambios en la forma en que certifican las imágenes personalizadas . Como parte de esa certificación, restringieron el uso de imágenes URL externas.

Si realmente utiliza la versión de Queryon Timeline que se encuentra en el origen de la aplicación (versión 1.05), no podrá extraer estas imágenes de URL. Entonces, ahora tiene la opción de usar este 1.04, manteniendo las imágenes URL, donde tienen en su sitio una forma de incrustar imágenes binarias 64 directamente en el archivo PBIX.

Ahora mencioné cambiar ese año en un campo de fecha, por lo que debemos conectarlo a nuestro modelo de datos.

Código M en columnas personalizadas de Power Query |  BI de energía

Cambiémoslo de uno a uno a uno a muchos , y una sola dirección en el filtro Cruz, y luego activemos esta relación .

Código M en columnas personalizadas de Power Query |  BI de energía

A continuación, para el campo URL de la imagen, debemos asegurarnos de que en la categoría Datos, no se muestre como Sin categoría, sino como URL de la imagen .

Código M en columnas personalizadas de Power Query |  BI de energía

Ahora que tenemos todo bien preparado, simplemente arrastramos y soltamos los campos Nombre , Fecha y URL . El resto se vuelve realmente fácil de limpiar en las opciones de formato.

Código M en columnas personalizadas de Power Query |  BI de energía


Tabla de Power Query: Cómo fusionar columnas dinámicamente
Cómo fusionar consultas en LuckyTemplates
Extraer valores de registros y listas en Power Query

Conclusión

Con suerte, te entusiasmé al agregar el código M a tu repertorio. Le mostré cómo configurar un modelo conceptual e implementar el enfoque Learn by Google. Lo guié a través de los pasos para incorporar el código M en una columna personalizada y visualizar los resultados usando Queryon Timeline.

Espero que lo hayas encontrado útil. Mire el video completo a continuación para obtener más detalles sobre el tutorial y consulte los enlaces a continuación para obtener más contenido relacionado.

¡Mis mejores deseos!


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