Como Cambiar el nombre de las columnas en Power Query cuando cambian los nombres

- El problema
-
Solución n.º 1: utilizar únicamente la interfaz de usuario
- Cargar los datos en Power Query
- Eliminar encabezados de promoción tipo cambiado
- Eliminar las 3 primeras filas
- Promocionar encabezados
- Desvincular otras columnas
- Agregar una columna de índice/módulo
- Reemplazar los valores
- Eliminar la columna Atributo
- Pivotar la columna del encabezado
- Aplicar tipo modificado
- Cerrar y cargar en Excel
- Actualizar la consulta
- Solución n.º 2: edición del código M
- Conclusión
Power Query es excelente para extraer datos de una fuente, remodelarlos y luego cargarlos en Excel. Una parte estándar del proceso de transformación implica que Power Query utilice encabezados de columna para hacer referencia a cada columna. Cuando los encabezados de las columnas cambian en los datos de origen, nos genera un gran problema.
Recientemente, mi amiga Celia Alves publicó un video en YouTube dando su solución a este problema. Hay muchas cosas buenas en ese video que muestran cómo usar fórmulas de código M y técnicas de listas. Definitivamente deberías ver su video sobre su solución: https://youtu.be/wSwXyfaXQgU . Entonces, en esta publicación, quiero compartir dos formas de cambiar el nombre de las columnas en Power Query cuando cambian los nombres de las columnas.
Tengo dos enfoques que son un poco diferentes al de Celia, así que pensé en publicar mis soluciones a este problema común con el fin de compartir otras técnicas.
Tabla de contenido
- El problema
- Solución n.º 1: utilizar únicamente la interfaz de usuario
- Cargar los datos en Power Query
- Eliminar encabezados de promoción tipo cambiado
- Eliminar las 3 primeras filas
- Promocionar encabezados
- Desvincular otras columnas
- Agregar una columna de índice/módulo
- Reemplazar los valores
- Eliminar la columna Atributo
- Pivotar la columna del encabezado
- Aplicar tipo modificado
- Cerrar y cargar en Excel
- Actualizar la consulta
- Solución n.º 2: edición del código M
- Transformaciones iniciales
- Cambiar el nombre de las columnas manualmente
- Cambiar la fórmula del código M
- Transformaciones finales
- Conclusión
Descargue el archivo de ejemplo: únase al programa Insiders gratuito y obtenga acceso al archivo de ejemplo utilizado para esta publicación.
Nombre de archivo: 0066 Cambiar el nombre de las columnas en Power Query.zip
Tener acceso
El problema
Supongamos que recibimos el siguiente archivo cada semana:
No parece demasiado complicado transformarlo en Power Query. Pero la cosa se vuelve complicada la semana siguiente cuando recibimos una versión actualizada del archivo:
Los títulos de las últimas 3 columnas han cambiado. Por lo tanto, cuando actualizamos la consulta, obtenemos el siguiente error:
El problema con la consulta es que los encabezados de las columnas se indican explícitamente en el código M durante el paso Tipo modificado.
Entonces, ¿cómo podemos cambiar el nombre de las columnas en Power Query cuando cambian los nombres? Vamos a averiguar.
Solución n.º 1: utilizar únicamente la interfaz de usuario
La primera solución se basa íntegramente en la interfaz de usuario; no hay requisitos de codificación. Hay bastantes pasos, pero con suerte nada demasiado complicado.
Cargar los datos en Power Query
Para cargar los datos de ejemplo en Power Query:
- En la cinta, haga clic en Datos Obtener datos del archivo del libro de trabajo
- Navegue hasta la ubicación del archivo y haga clic en Importar
- Se abre la ventana del Navegador, seleccione Datos y haga clic en el botón Transformar datos
Eliminar encabezados de promoción tipo cambiado
Si tiene la configuración predeterminada de Power Query, su ventana de vista previa se verá así:
Actualmente, no necesitamos el paso Encabezados promocionados o Tipo modificado , así que elimine esos pasos haciendo clic en la cruz al lado de cada uno.
Nota: Si ha cambiado la configuración predeterminada de Power Query, es posible que no necesite eliminar estos pasos.
Eliminar las 3 primeras filas
Las 3 filas superiores no forman parte del conjunto de datos, por lo que podemos eliminarlas:
- Haga clic en Inicio Eliminar filas (menú desplegable) Eliminar filas superiores
- Ingrese 3 en el cuadro de diálogo Eliminar filas superiores y haga clic en Aceptar
Promocionar encabezados
Ahora podemos promocionar encabezados haciendo clic en Inicio Usar primeras filas como encabezado
Si el paso Tipo modificado aparece automáticamente, elimínelo.
Hasta ahora, todo bien; no se han incluido nombres de columnas en el código.
Desvincular otras columnas
A continuación, queremos desvincular esas columnas con los nombres que cambian.
- Seleccione todas las columnas con nombres que no cambiarán; en este ejemplo, son columnas desde Referencia de artículo hasta PR disponible .
- Haga clic en Transformar columnas desvinculadas (menú desplegable) Desvincular otras columnas
Los datos de la ventana de vista previa ahora se ven así. La columna Atributo ahora contiene los nombres de las columnas.
Agregar una columna de índice/módulo
Como había 3 columnas con nombres que cambian, queremos crear una numeración recurrente de 0 a 2 para cada uno de esos elementos. Puede parecer extraño, pero todo quedará claro una vez que esté completo:
- En la cinta, haga clic en Agregar columna Índice de columna (menú desplegable) Desde 0
- Con la columna Índice seleccionada, haga clic en Transformar módulo estándar (desplegable)
- Como hay 3 columnas, ingrese 3 en la ventana Módulo y haga clic en Aceptar .
La ventana de vista previa ahora se ve así. Observe que la columna Índice tiene valores 0, 1, 2 repetidos
Reemplazar los valores
Luego reemplazaremos cada número con el nombre del encabezado que queremos usar.
- Cambie el tipo de datos de la columna Índice a Texto, haciendo clic en el icono de tipo de datos y seleccionando Texto en el menú.
- Transformar Reemplazar valores (menú desplegable) Reemplazar valores
- En la ventana Reemplazar valores , aplique los siguientes parámetros
Valor a buscar: 0
Reemplazar con: Ventas de la semana pasada
Luego haga clic en Aceptar - Repita los pasos 2 y 3 para las otras columnas:
- 1 se reemplaza con Hace dos semanas
- 2 se reemplaza con Hace tres semanas
Eliminar la columna Atributo
Ya no tenemos uso para la columna Atributo creada durante el proceso Unpivot.
Seleccione la columna Atributo y haga clic en Inicio Quitar columna
Pivotar la columna del encabezado
La columna Índice ahora contiene los nuevos encabezados que queremos aplicar, así que giremos sobre esa columna para crear los nuevos encabezados.
- Con la columna Índice seleccionada, haga clic en Transformar pivote
- En la ventana Columna dinámica, seleccione Valores en el cuadro desplegable (ya que contiene los valores numéricos para cada columna). Luego haga clic en Aceptar .
Aplicar tipo modificado
Ahora podemos aplicar el paso Tipo cambiado. En general, recomendaría mirar cada columna individualmente y decidir el tipo de datos, pero para esta ilustración, dejaremos que Power Query elija el tipo predeterminado.
Seleccione todas las columnas y haga clic en Transformar tipo de datos de detección
Cerrar y cargar en Excel
Finalmente, podemos cargar la tabla en Excel.
- Haga clic en Inicio Cerrar Cargar (menú desplegable) Cerrar Cargar en…
- En el cuadro de diálogo Importar datos , seleccione una tabla en la hoja de trabajo existente en la celda A1 y luego haga clic en Aceptar.
Así es como se ve Excel con los nuevos nombres de columnas.
Actualizar la consulta
Bien, ahora supongamos que tenemos algunos datos actualizados.
- Eliminar el archivo Sample Data.xlsx
- Cambiar el nombre de los datos de muestra: New.xlsx para que sea Sample Data.xlsx
- En Excel, haga clic en Actualizar datos todos
La consulta ahora se actualiza y… ¡Ta-Dah! ¡Los datos a continuación se cargan!
¡¡¡Asombroso!!! La consulta se actualiza sin errores.
Solución n.º 2: edición del código M
Bien, ahora es el momento de buscar otra solución. Esta solución es mucho más sencilla, pero debes sentirte un poco seguro al editar las fórmulas M para hacerlo bien.
Transformaciones iniciales
Siga los pasos de la Solución n.° 1 hasta el final del paso Promocionar encabezados y luego regrese aquí.
Cambiar el nombre de las columnas manualmente
Continúe y simplemente haga doble clic en cada una de las columnas cuyo nombre desea cambiar y cámbielas.
Los nombres de las columnas están incluidos en el código M. ¿No es esto precisamente lo que dijimos que no queríamos hacer? Sí, lo es. Pero espera; todo está a punto de unirse.
Cambiar la fórmula del código M
El código M no es el más indulgente de los lenguajes; debe realizar los cambios de sintaxis exactamente como se indica a continuación (incluidas las mayúsculas y minúsculas correctas).
Si la barra de fórmulas no está visible, haga clic en Ver barra de fórmulas
Seleccione el paso Cambiar nombre de columna y realice los siguientes cambios en la barra de fórmulas. Cambie el texto resaltado de este (el código se ha ajustado para facilitar la lectura):
= Table.RenameColumns(#"Encabezados promocionados",{{ "Semana de ventas del 27/12" , "Ventas de la semana pasada"}, { "Semana de ventas del 20/12" , "Hace dos semanas"}, { "Semana de ventas del 13/12" , "Hace tres semanas"}})
a esto:
= Table.RenameColumns(#"Encabezados promocionados",{{ Table.ColumnNames(#"Encabezados promocionados"){6} , "Ventas de la semana pasada"}, { Table.ColumnNames(#"Encabezados promocionados"){7} , " Hace dos semanas"}, { Table.ColumnNames(#"Encabezados promocionados"){8} , "Hace tres semanas"}})
Entonces, en lugar de cambiar una columna según su nombre, la cambiamos según su posición.
Nota: "Semana de ventas del 27/12" es la columna 6 en Power Query aunque es la séptima columna. Power Query comienza a contar en cero, por lo que, aunque es la séptima columna, el número de columna de Power Query siempre es 1 menor.
Transformaciones finales
Ahora elija la Solución n.° 1 en el paso Aplicar cambios y luego continúe hasta el final.
Una vez más, hemos cambiado los nombres de las columnas incluso cuando cambian los datos de origen.
Conclusión
Esta publicación demuestra que existen varias formas de resolver el mismo problema en Power Query. Por ejemplo, el enfoque de Celia y el mío anterior son completamente diferentes, pero logran el mismo resultado.
El método que utilice depende de usted, pero al comparar los tres enfoques, espero que haya aprendido mucho sobre el uso de Power Query para resolver problemas.
Deja una respuesta