El error «No se encontró la columna de la tabla» impide actualizar la tabla dinámica.

christian larrue 0 Puntos de reputación
2026-09-16T02:16:21.0466667+00:00

Tengo configurada una consulta de Power Query para limpiar un archivo CSV de ventas mensuales que viene desordenado. La consulta carga los datos directamente en una tabla dinámica situada en otra hoja.

Cada mes, el sistema que genera el archivo CSV original cambia el encabezado de una de las columnas para que coincida con el mes en curso (por ejemplo, el mes pasado la columna se llamaba Sales_July y este mes se llama Sales_August).

Cuando reemplazo el archivo de origen y hago clic en "Actualizar todo" para refrescar la tabla dinámica, la consulta falla y muestra el siguiente error: Expression.Error: The column 'Sales_July' of the table wasn't found (No se encontró la columna 'Sales_July' en la tabla).

Dado que Power Query registró el nombre de la columna del mes anterior de forma fija (hardcoded) en el paso de "Tipo cambiado" o "Columnas renombradas", no logra encontrarla en los nuevos datos, lo que impide que la tabla dinámica se actualice.

¿Cómo puedo hacer que Power Query capture dinámicamente esa columna específica, independientemente de su nombre, y la renombre con un nombre estándar (como "Current_Month_Sales") para evitar que la consulta y la tabla dinámica fallen cada vez que se actualizan los datos?

¡Gracias de antemano por cualquier orientación!

Microsoft 365 y Office | Excel | Para el negocio | MacOS
0 comentarios No hay comentarios

1 respuesta

Ordenar por: Más reciente
  1. Michelle Nguyen 2,620 Puntos de reputación Asesor independiente
    2026-09-16T03:59:25.72+00:00

    Nota: Esta respuesta es una traducción automática. Puede contener errores gramaticales o expresiones que suenen poco naturales.

    Hola @christian larrue

    Según la información que ha proporcionado, entiendo que dispone de una consulta de Power Query que alimenta una tabla dinámica a partir de un archivo CSV de ventas mensuales. El problema surge cuando el sistema cambia automáticamente el nombre de una columna cada mes (por ejemplo, de Sales_July a Sales_August); al actualizar los datos, Power Query genera el siguiente error: Expression.Error: The column 'Sales_July' of the table wasn't found (No se encontró la columna 'Sales_July' en la tabla).

    Tras analizar la situación y reproducir el comportamiento, parece que la causa radica en que Power Query fija el nombre de la columna (lo codifica de forma estática) en pasos como "Tipo cambiado" o "Columnas renombradas". Cuando el encabezado cambia al mes siguiente, dichos pasos siguen buscando el nombre antiguo, lo que provoca el fallo de la actualización.

    La solución consiste en añadir un paso que detecte dinámicamente la columna cuyo nombre comienza por "Sales_" y la renombre con un nombre fijo, como "Current_Month_Sales". Es fundamental que este paso se ejecute lo antes posible dentro de la consulta; concretamente, antes de que cualquier paso de "Tipo cambiado" o similar haga referencia a la columna por su nombre literal.

    Esto se debe a que Power Query suele generar automáticamente pasos como: Table.TransformColumnTypes(Source, {{"Sales_July", type number}})

    Si al mes siguiente la columna pasa a llamarse "Sales_August", ese paso seguirá buscando "Sales_July" y provocará el error inmediatamente.

    Aquí tienes el código M para ese paso:

    let
        Source = Csv.Document(File.Contents("YourFilePath.csv"), [Delimiter=",", Columns=..., Encoding=65001]),
        PromotedHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
    
        // --- Dynamic column detection starts here ---
        ColumnNames = Table.ColumnNames(PromotedHeaders),
        SalesColumnName = List.Select(ColumnNames, each Text.StartsWith(_, "Sales_")){0},
        RenamedColumns = Table.RenameColumns(PromotedHeaders, {{SalesColumnName, "Current_Month_Sales"}}),
        // --- From this point on, every later step references "Current_Month_Sales" and never breaks ---
    
        ChangedType = Table.TransformColumnTypes(RenamedColumns, {{"Current_Month_Sales", type number}})
    in
        ChangedType
    

    Puede consultar los pasos a continuación para realizar los cambios:

    Paso 1: Abrir el Editor de Power Query

    Seleccione Datos > Consultas y conexiones

    Haga doble clic en la consulta que presenta el error.

    Seleccione Inicio > Editor avanzado

    Paso 2: Inserte un paso de cambio de nombre dinámico inmediatamente después de "Promover encabezados".

    Busque una línea similar a esta:

    PromotedHeaders =
     Table.PromoteHeaders(Source,[PromoteAllScalars=true]),
    

    Inmediatamente después, añada:

    ColumnNames =
     Table.ColumnNames(PromotedHeaders),
    SalesColumnName =
     List.Select(
     ColumnNames,
     each Text.StartsWith(_, "Sales_")
     ){0},
    RenamedColumns =
     Table.RenameColumns(
     PromotedHeaders,
     {{SalesColumnName, "Current_Month_Sales"}}
     ),
    

    Paso 3: Editar todos los pasos siguientes

    Cualquier paso que se esté utilizando actualmente Sales_July todo debe cambiarse a Current_Month_Sales

    Si el error persiste, vaya a la sección Pasos aplicados (en el lado derecho de la ventana de Power Query), haga clic con el botón derecho en el paso "Encabezados promocionados" y seleccione "Insertar paso después".

    Esta acción crea un nuevo paso inmediatamente después de "Encabezados promocionados" y antes del paso "Tipo cambiado" que está causando el error.

    En la barra de fórmulas, reemplace la fórmula predeterminada con la siguiente.

    = let
     ColumnNames = Table.ColumnNames(#"Promoted Headers"),
     SalesColumnName = List.Select(ColumnNames, each Text.StartsWith(_, "Sales_")){0}
     in
     Table.RenameColumns(#"Promoted Headers", {{SalesColumnName, "Current_Month_Sales"}})
    

    A continuación, pulse la tecla Intro o el icono de la marca de verificación para confirmar.

    Continúe modificando la referencia en el paso "Tipo cambiado"; haga clic en el paso "Tipo cambiado" existente. En la fórmula de este paso, reemplace {"Sales_July", type number}> {"Current_Month_Sales", type number}

    Después de realizar los dos cambios anteriores, haga clic en Inicio > Cerrar y cargar.

    Por favor, avíseme si hay alguna novedad.

    ¿Le ha resultado útil esta respuesta?


Su respuesta

Las respuestas pueden ser marcadas como "Aceptadas" por el autor de la pregunta y "Recomendadas" por los moderadores, lo que ayuda a los usuarios a saber que la respuesta ha resuelto el problema del autor.