Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola a todos,
Estoy usando la función Combinar archivos (binarios) en Flujos de datos para anexar varios archivos de Excel (con la misma estructura) en una sola tabla. El archivo de ejemplo que estoy utilizando es un archivo que contiene los nombres de columna y la estructura correctos.
Desafortunadamente, hay raras ocasiones en que uno de los archivos de Excel tiene un nombre de columna ligeramente diferente. Por ejemplo, la mayoría de los archivos de Excel tienen un encabezado de columna llamado "Task_Name", pero en raras ocasiones el encabezado de columna podría ser "Nombre". Esto hace que Power Query quite ese archivo de la función Combinar.
Este es un problema común planteado en los foros, pero parece que no puedo encajar ninguna de las soluciones sugeridas en mi ejemplo.
A continuación se muestra la consulta M generada automáticamente por Power Query:
let
Source = SharePoint.Files("https://networkrail.sharepoint.com/sites/IntelligentInfrastructure-PlanningCoE", [ApiVersion = 15]),
#"Filtered rows" = Table.SelectRows(Source, each [Folder Path] = "https://networkrail.sharepoint.com/sites/IntelligentInfrastructure-PlanningCoE/Shared Documents/Planning CoE/Imran Temp WIP/"),
#"Filtered hidden files" = Table.SelectRows(#"Filtered rows", each [Attributes]?[Hidden]? <> true),
#"Invoke custom function" = Table.AddColumn(#"Filtered hidden files", "Transform file", each #"Transform file"([Content])),
#"Renamed columns" = Table.RenameColumns(#"Invoke custom function", {{"Name", "Source.Name"}}),
#"Removed other columns" = Table.SelectColumns(#"Renamed columns", {"Source.Name", "Transform file"}),
#"Removed errors" = Table.RemoveRowsWithErrors(#"Removed other columns", {"Transform file"}),
#"Expanded table column" = Table.ExpandTableColumn(#"Removed errors", "Transform file", Table.ColumnNames(#"Transform file"(#"Sample file")))
in
#"Expanded table column"
Supongo que necesito aplicar un cambio de nombre de columna antes del paso "Errores eliminados", y estaba pensando algo en la línea del código a continuación, pero esto no ha funcionado, posiblemente porque colocar "Transformar archivo" en la sintaxis no es correcto.
#"Change Name" = Table.TransformColumns(#"Removed other columns", {{"Transform file", each Table.RenameColumns(_,{{"Name", "Task_Name"}}, MissingField.Ignore)}}),
Cualquier dirección sería apreciada.
Saludos
Solved! Go to Solution.
Gracias Pat. Sospecho que las cosas funcionan de manera un poco diferente cuando se usan flujos de datos. Afortunadamente he identificado una solución. Pasos a continuación en caso de que alguien más tenga un problema similar:
Instrucciones:
#"Renamed columns" = Table.RenameColumns(#"Promoted headers",{{"Name", "Task_Name"}}, MissingField.Ignore)
let
Source = (Parameter as binary) => let
Source = Excel.Workbook(Parameter, null, true),
Navigation = Source{[Item = "Planning_Task_Export_Table", Kind = "Sheet"]}[Data],
#"Promoted headers" = Table.PromoteHeaders(Navigation, [PromoteAllScalars = true]),
#"Renamed columns" = Table.RenameColumns(#"Promoted headers",{{"II__Project", "II_Project"}, {"Name", "Task_Name"}, {"Text28", "Commentary"}, {"Text5", "Solution_Increment"}, {"Text6", "Project_Increment"}}, MissingField.Ignore)
//#"Changed column type" = Table.TransformColumnTypes(#"Renamed columns", {{"ID", Int64.Type}, {"Unique_ID", Int64.Type}, {"Task_Name", type text}, {"Start_Date", type datetime}, {"Finish_Date", type datetime}, {"Percent_Complete", Int64.Type}, {"Baseline_Start", type datetime}, {"Baseline_Finish", type datetime}, {"Milestone", type text}, {"Solution_Increment", type number}, {"Project_Increment", type date}, {"Milestone_ID", type text}, {"Milestone_Level", type text}, {"II_Project", type text}, {"Commentary", type text}, {"Unique_ID_Successors", Int64.Type}})
in
#"Renamed columns"
in
Source
Referencias:
https://www.excelguru.ca/blog/2017/07/26/merge-files-different-column-headers/
Hola @mahoneypat, ¿alguna idea sobre este? ¿Quizás esto funciona de manera diferente en los flujos de datos?
Gracias Pat. Pensé que había seguido los pasos correctamente, pero desafortunadamente aparece el mismo error ("No se encontró la columna 'Task_Name' de la tabla".
A continuación se muestra la M-Query revisada aplicada a la tabla de archivos Transform Sample:
let
Source = Excel.Workbook(Parameter, null, true),
Navigation = Source{0}[Data],
#"Promoted headers" = Table.PromoteHeaders(Navigation, [PromoteAllScalars = true]),
#"Renamed columns" = Table.RenameColumns(#"Promoted headers", {{Table.ColumnNames(#"Promoted headers"){2}, "Task_Name"}})
in
#"Renamed columns"
Su sintaxis parece correcta y ese paso parece estar funcionando (los datos se muestran en la ventana de vista previa, no un error). ¿Ha intentado cambiar el archivo de ejemplo al que causa el error para que funcione directamente?
Además, ¿tiene Permitir actualización de fondo sin marcar (lo que debería) y solo necesita Actualizar vista previa (lamento preguntar lo obvio).
Palmadita
Por favor, vea este video para saber cómo evitar esto.
Palmadita
Gracias Pat. Sospecho que las cosas funcionan de manera un poco diferente cuando se usan flujos de datos. Afortunadamente he identificado una solución. Pasos a continuación en caso de que alguien más tenga un problema similar:
Instrucciones:
#"Renamed columns" = Table.RenameColumns(#"Promoted headers",{{"Name", "Task_Name"}}, MissingField.Ignore)
let
Source = (Parameter as binary) => let
Source = Excel.Workbook(Parameter, null, true),
Navigation = Source{[Item = "Planning_Task_Export_Table", Kind = "Sheet"]}[Data],
#"Promoted headers" = Table.PromoteHeaders(Navigation, [PromoteAllScalars = true]),
#"Renamed columns" = Table.RenameColumns(#"Promoted headers",{{"II__Project", "II_Project"}, {"Name", "Task_Name"}, {"Text28", "Commentary"}, {"Text5", "Solution_Increment"}, {"Text6", "Project_Increment"}}, MissingField.Ignore)
//#"Changed column type" = Table.TransformColumnTypes(#"Renamed columns", {{"ID", Int64.Type}, {"Unique_ID", Int64.Type}, {"Task_Name", type text}, {"Start_Date", type datetime}, {"Finish_Date", type datetime}, {"Percent_Complete", Int64.Type}, {"Baseline_Start", type datetime}, {"Baseline_Finish", type datetime}, {"Milestone", type text}, {"Solution_Increment", type number}, {"Project_Increment", type date}, {"Milestone_ID", type text}, {"Milestone_Level", type text}, {"II_Project", type text}, {"Commentary", type text}, {"Unique_ID_Successors", Int64.Type}})
in
#"Renamed columns"
in
Source
Referencias:
https://www.excelguru.ca/blog/2017/07/26/merge-files-different-column-headers/
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |