March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hola, estoy tratando de combinar datos de diferentes archivos de Excel y hojas de una carpeta de SharePoint.
Estoy tratando de lograr esto usando una sola consulta, pero estoy encontrando dificultades.
Aquí hay un ejemplo de lo que estoy tratando de lograr:
Estos son los pasos iniciales que están funcionando:
Antes de continuar con estos pasos, necesito implementar las condiciones que he descrito. He probado varios enfoques, pero no he tenido éxito.
Agradecería cualquier ayuda con este asunto.
Este @बीएमएम27 ,
A continuación se muestra mi tabla:
El siguiente código M te ayudará:
let
Source = Excel.Workbook(File.Contents("C:\Users\Administrator\Desktop\Project Files\" & [Project]&".xlsx"), null, true),
#"SheetData" = if Text.StartsWith(Source, "A") then
FileContent{[Item="B",Kind="Sheet"]}[Data]
else if Text.StartsWith(Source, "D") then
FileContent{[Item="C",Kind="Sheet"]}[Data]
else
null,
#"AdjustedData" = if Source = List.First(FilteredFiles[Name]) then
Table.PromoteHeaders(SheetData, [PromoteAllScalars=true])
else
Table.Skip(SheetData,1)
in
#"AdjustedData"
Saludos
Xianda Tang
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola, gracias por la respuesta, pero ¿cómo va a cambiar [proyecto] o este código significa que toma todos los proyectos? Más tarde estás usando FilteredFiles, lo siento, pero estoy un poco perdido.
El siguiente código puede ayudar, va debajo de FilteredFiles, pero no funciona.
FilteredFiles es una tabla en cada fila es un excel con tipo de contenido Binario.
LoadData = (archivo) =>
dejar
ExcelContent = SharePoint.Files(FolderUrl & file){0}[Content],
ExcelWorkbook = Excel.Workbook (ExcelContent),
Hoja de datos =
if Text.StartsWith(archivo, "A") entonces
ExcelWorkbook{[Item="B", Kind="Hoja"]}[Datos]
else if Text.StartsWith(file, "D") then
ExcelWorkbook{[Item="C", Kind="Hoja"]}[Datos]
más
nulo
SkipFirstRow = if DataSheet <> null then Table.Skip(DataSheet, 1) else null,
AddSourceColumn = Table.AddColumn(SkipFirstRow, "FileSource", cada archivo, escriba texto)
en
AddSourceColumn,
CombinedData = Table.FromRecords(List.Transform(FilteredFiles[Name], cada LoadData(_)))
en
Datos combinados
¡Gracias!
¡Creo que lo tengo!
Para otras personas, este código:
Toma una carpeta de SharePoint
Aquí está el código:
let
FolderUrl = "sharepoint folder",
//Get the list of files from SharePoint
Source = SharePoint.Files("sharepoint", [ApiVersion = 15]),
//Filter the files to select only those starting with "A" or "B"
FilteredFiles = Table.SelectRows(Source, each Text.StartsWith([Name], "A") or Text.StartsWith([Name], "B")),
//Define a function to load data from each Excel file
LoadData = (file as text) =>
let
//Fetch the binary content of the Excel file
ExcelContent = Web.Contents(FolderUrl & file),
//Load the Excel workbook
ExcelWorkbook = Excel.Workbook(ExcelContent),
//Determine the sheet name based on the file name
DataSheetName =
if Text.StartsWith(file, "A") then "C"
else if Text.StartsWith(file, "B") then "D"
else null,
//Extract data from the specified sheet
DataSheet = if DataSheetName <> null then ExcelWorkbook{[Item=DataSheetName, Kind="Sheet"]}[Data] else null,
//Skip the first row if data exists
SkipFirstRow = if DataSheet <> null then Table.Skip(DataSheet, 1) else null,
//Add a column to identify the source file
AddSourceColumn = Table.AddColumn(SkipFirstRow, "FileSource", each file, type text)
in
//Return the resulting table
AddSourceColumn,
//Apply the LoadData function to each file and combine the results
CombinedData = Table.Combine(List.Transform(FilteredFiles[Name], each LoadData(_)))
in
CombinedData
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.