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


Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.