Cómo fusionar columnas dinámicamente en una tabla de Power Query

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

O bien, en la pestaña Transformar , seleccione fusionar columnas . Y aparecerá este cuadro de diálogo, que le permite seleccionar el Separador.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

En el cuadro emergente, seleccione Tabulador y podrá ingresar un nuevo nombre de columna. En este caso, lo nombré Descripción.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

En la barra de fórmulas, vemos el código M que ha creado este paso de transformación.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

Si la barra de fórmulas no está visible en su pantalla, vaya a la pestaña Ver y actívela.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

Y finalmente, pasa el nombre de la nueva columna como texto para que podamos ajustarlo.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

En este cuadro emergente, haga clic en Aceptar.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

Luego, en la pestaña Agregar columna , seleccionaré Formato y luego Recortar .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

Entonces, la próxima vez que ingresen datos y esa cantidad de columnas haya cambiado, este grupo los recogerá automáticamente.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

Cambiemos el nombre de esta consulta, lo llamaré grupos de columnas.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

Asegurémonos de que su carga se haya deshabilitado porque esta es solo una consulta de soporte.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

Entonces, si hacemos ese filtro en la Descripción dentro de la Columna 1, obtenemos las columnas que cumplen con ese criterio.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

Y ahora tenemos una lista. Así que démosle a esta consulta un nombre propio ( ListDescr ) y verifiquemos si está deshabilitada de la carga.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 .

Cómo fusionar columnas dinámicamente en una tabla de Power Query

En el cuadro emergente, elegiré Tabulador como Separador y lo llamaré Descripción2.

Cómo fusionar columnas dinámicamente en una tabla de Power Query

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 columnas dinámicamente en una tabla de Power Query


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

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