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

Índice
  1. El problema
  2. Solución n.º 1: utilizar únicamente la interfaz de usuario
    1. Cargar los datos en Power Query
    2. Eliminar encabezados de promoción tipo cambiado
    3. Eliminar las 3 primeras filas
    4. Promocionar encabezados
    5. Desvincular otras columnas
    6. Agregar una columna de índice/módulo
    7. Reemplazar los valores
    8. Eliminar la columna Atributo
    9. Pivotar la columna del encabezado
    10. Aplicar tipo modificado
    11. Cerrar y cargar en Excel
    12. Actualizar la consulta
  3. Solución n.º 2: edición del código M
    1. Transformaciones iniciales
    2. Cambiar el nombre de las columnas manualmente
    3. Cambiar la fórmula del código M
    4. Transformaciones finales
  4. 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:

Datos de origen originales con columnas

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:

Nuevos datos de origen con columnas modificadas

Los títulos de las últimas 3 columnas han cambiado. Por lo tanto, cuando actualizamos la consulta, obtenemos el siguiente error:

Falta columna de mensaje de 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.

Problema de código M: contiene nombres de columnas

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:

  1. En la cinta, haga clic en Datos Obtener datos del archivo del libro de trabajo
    Obtener datos del libro de trabajo: cinta de datos
  2. Navegue hasta la ubicación del archivo y haga clic en Importar
  3. 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í:

Datos de ejemplo después de la carga

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.

Eliminar encabezados promocionados y tipos modificados

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:

  1. Haga clic en Inicio Eliminar filas (menú desplegable) Eliminar filas superiores
    Eliminar filas superiores
  2. Ingrese 3 en el cuadro de diálogo Eliminar filas superiores y haga clic en Aceptar
    Cuadro de diálogo Eliminar filas superiores

Promocionar encabezados

Ahora podemos promocionar encabezados haciendo clic en Inicio Usar primeras filas como encabezado

Inicio - Utilice la primera fila como encabezados

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.

  1. Seleccione todas las columnas con nombres que no cambiarán; en este ejemplo, son columnas desde Referencia de artículo hasta PR disponible .
  2. Haga clic en Transformar columnas desvinculadas (menú desplegable) Desvincular otras columnas
    Transformar: 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.

Ventana de vista previa después de desvincular

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
    Agregar columna de índice desde cero
  • Con la columna Índice seleccionada, haga clic en Transformar módulo estándar (desplegable)
    Transformación - Módulo estándar
  • Como hay 3 columnas, ingrese 3 en la ventana Módulo y haga clic en Aceptar .
    Cuadro de diálogo Módulo

La ventana de vista previa ahora se ve así. Observe que la columna Índice tiene valores 0, 1, 2 repetidos

Ventana de vista previa después de agregar la columna de módulo

Reemplazar los valores

Luego reemplazaremos cada número con el nombre del encabezado que queremos usar.

  1. 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ú.
    Cambiar el tipo de datos de la columna de índice a texto
  2. Transformar Reemplazar valores (menú desplegable) Reemplazar valores
    Transformar desde reemplazar valores
  3. 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
    Cuadro de diálogo Reemplazar valores
  4. Repita los pasos 2 y 3 para las otras columnas:
    • 1 se reemplaza con Hace dos semanas
    • 2 se reemplaza con Hace tres semanas

Ventana de vista previa después de reemplazar valores

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

Inicio - Eliminar columnas

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.

  1. Con la columna Índice seleccionada, haga clic en Transformar pivote
    Transformar - Pivotar desde la cinta
  2. 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 .
    Cuadro de diálogo Columna dinámica

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

Transformar - Detectar tipo de datos

Cerrar y cargar en Excel

Finalmente, podemos cargar la tabla en Excel.

  1. Haga clic en Inicio Cerrar Cargar (menú desplegable) Cerrar Cargar en…
    Inicio Cerrar Cargar a
  2. 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.
    Cuadro de diálogo Importar datos

Así es como se ve Excel con los nuevos nombres de columnas.

Datos en Excel - después de transformaciones

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!

Nuevos datos importados a Excel

¡¡¡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.

Columnas renombradas

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

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

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra política de cookies. Leer mas...