Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
En este tutorial, examinaremos una pregunta interesante que se planteó en el sobre cómo fusionar dinámicamente un número variable de columnas en una tabla de Power Query. Puedes ver el video completo de este tutorial en la parte inferior de este blog.
Este escenario se ocupa de las exportaciones de datos sin procesar que hacen que los datos se derramen en un número desconocido de columnas adyacentes. Cuando observa el ejemplo, puede ver que la descripción se ha extendido a la Columna 4 y la Descripción 2 se ha dividido en dos columnas adyacentes. Pero ese no será siempre el caso. En el próximo ciclo, este número de columnas podría cambiar.
Antes de saltar a la solución, examinemos el código M que Power Query genera cuando fusiona columnas.
Tabla de contenido
Código de la tabla M de Power Query
Hay un par de formas de fusionar columnas. Una es seleccionar la columna de descripción y presionar la tecla Mayús o la tecla de control y luego seleccionar la columna 4 también. Luego, haga clic con el botón derecho y elija Fusionar columnas .
O bien, en la pestaña Transformar , seleccione fusionar columnas . Y aparecerá este cuadro de diálogo, que le permite seleccionar el Separador.
En el cuadro emergente, seleccione Tabulador y podrá ingresar un nuevo nombre de columna. En este caso, lo nombré Descripción.
En la barra de fórmulas, vemos el código M que ha creado este paso de transformación.
Si la barra de fórmulas no está visible en su pantalla, vaya a la pestaña Ver y actívela.
Entonces, la función que usa Power Query para fusionar columnas es Table.CombinedColumns . El primer parámetro que toma es una tabla. Esa tabla es devuelta por el paso anterior en nuestro código, por lo que en los Pasos aplicados, verá que esto se llama Source .
Luego, codificó los nombres de las columnas en una lista. Aquí ve los inicializadores de la lista, y entre los valores en el texto, la descripción del nombre de la columna y la columna 4 del nombre de la columna. Luego, llama a otra función M para combinar los valores de texto en esas columnas.
Y finalmente, pasa el nombre de la nueva columna como texto para que podamos ajustarlo.
Entonces, si queremos que esta función fusione dinámicamente un número cambiante de columnas, tendremos que cambiar ese segundo valor de parámetro que ahora contiene una lista de nombres de columna codificados.
Fusionar un número cambiante de columnas en una tabla de Power Query
Volveré a mi consulta de datos sin procesar, y si observamos más de cerca los nombres de las columnas, vemos que cada una de las columnas de derrame es anónima. No tienen nombres propios, pero todos comienzan con la columna de texto, seguida de un número. Veamos si podemos usar eso. Primero, crearé una referencia haciendo clic derecho aquí y seleccionando Referencia .
Y para obtener los nombres de las columnas dentro de la barra de fórmulas, puedo agregar Table.ColumnNames . Esta función devuelve una lista con todos los nombres de columna de esa tabla. Volvamos a convertir esto en una tabla haciendo clic en A la tabla .
En este cuadro emergente, haga clic en Aceptar.
Luego, en la pestaña Agregar columna , seleccionaré Formato y luego Recortar .
Ahora, esta no es una transformación que quiero realizar, pero genera la mayor parte del código M para mí. Todo lo que tengo que hacer es reemplazar esa función de recorte con mi propia lógica .
Así que dentro de la barra de fórmulas, en lugar de Text.Trim , podemos decir si Text.StartsWith , y luego apuntarlo a nuestra Columna 1 , y lo copiaré de inmediato. Quiere ese texto que estamos buscando, así que será Columna. Entonces, si comienza con una columna de texto, entonces queremos "nulo"; para todo lo demás, queremos lo que esté en la Columna 1. También podemos cambiar el nombre de esa columna, así que dentro de la barra de fórmulas, en lugar de Trim, llamémoslo GroupColumn .
Ahora, todo lo que tenemos que hacer es llenarlos con estos valores. Así que haré clic con el botón derecho en mi encabezado, seleccionaré Rellenar y Abajo .
Entonces, la próxima vez que ingresen datos y esa cantidad de columnas haya cambiado, este grupo los recogerá automáticamente.
Cambiemos el nombre de esta consulta, lo llamaré grupos de columnas.
Asegurémonos de que su carga se haya deshabilitado porque esta es solo una consulta de soporte.
Puedo hacer referencia a esta consulta de apoyo y le cambiaré el nombre más adelante. Dejemos eso por ahora. Entonces, si recuerda, comenzamos fusionando dos columnas y eso creó una lista codificada con los nombres de las columnas , pero ahora podemos filtrar por Descripción en nuestro GroupColumn .
Entonces, si hacemos ese filtro en la Descripción dentro de la Columna 1, obtenemos las columnas que cumplen con ese criterio.
Sin embargo, esta es una tabla y no una lista. Necesitamos extraer lo que quede en esa primera columna porque necesitamos incluir esas columnas en nuestra operación de combinación. Entonces, para hacer eso, podemos hacer clic con el botón derecho en el encabezado de la Columna 1 y seleccionar Profundizar .
Y ahora tenemos una lista. Así que démosle a esta consulta un nombre propio ( ListDescr ) y verifiquemos si está deshabilitada de la carga.
Ahora podemos retroceder a nuestra consulta de resultados y reemplazar ese segundo argumento aquí con nuestra lista dinámica. Así que aquí, podemos hacer referencia a nuestro ListDescr .
Repitamos esto también para la Descripción 2. Iré a mi consulta ColumnGroups. Crearé otra referencia y seleccionaré las columnas que necesito. Luego filtraré la Descripción 2, que devolverá estas tres columnas. Haré clic con el botón derecho en mi encabezado y seleccionaré Drill Down y cambiaré el nombre de esta consulta también ( ListDescr2 ).
Luego regresaré a mi consulta de resultados, seleccionaré la columna Descripción2 y presionaré Mayús o control para seleccionar también la siguiente columna (columna2). Haré clic con el botón derecho en el encabezado y elegiré Fusionar columnas .
En el cuadro emergente, elegiré Tabulador como Separador y lo llamaré Descripción2.
Solo cambiaré el nombre de la columna aquí en la barra de fórmulas. También cambiaré esa lista codificada de la lista que acabamos de crear. Y ahora, como puede ver, esto también ha recogido la columna 8 que excluimos anteriormente.
Cómo fusionar consultas en LuckyTemplates
Parámetros de consulta de LuckyTemplates: Optimización de tablas
Clasificación de columnas de tablas de fechas en LuckyTemplates
Conclusión
En este blog, le mostré cómo usar códigos M en Power Query para fusionar columnas dinámicamente. No es difícil siempre y cuando esté familiarizado con el funcionamiento de Power Query y qué códigos M usar.
Espero que hayas disfrutado este. Consulte los enlaces a continuación para obtener más contenido relacionado.
¡Mis mejores deseos!
Toronjil
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