Generic Pivot Tables easy intoduction
Generic tutorial on getting data from files in SharePoint into Excel or PowerBI
All xlsx files in the folder are consolidated into 1 result set.
Duplicates are filtered out on the primary key columns (Name, Path, FileAction) and the row with the newest datetime in the JobDate column is kept.
“M” code for Power Query Advanced Editor
let
// Connect to SharePoint folder
Source = SharePoint.Files("https://MyTenant.sharepoint.com/sites/MySite", [ApiVersion = 15]),
// Filter to the specific folder
FilteredFolder = Table.SelectRows(Source, each Text.Contains([Folder Path], "Report/MyFolder")),
// Filter for Excel files
FilteredFiles = Table.SelectRows(FilteredFolder, each Text.EndsWith([Extension], ".xlsx")),
// Function to extract data from each file
ExtractData = (file) =>
let
Source = Excel.Workbook(file, true),
Sheet = Source0[Data]
in
Sheet,
// Add a custom column to extract data
AddedCustom = Table.AddColumn(FilteredFiles, "ExcelData", each ExtractData([Content])),
// Remove unnecessary columns
RemovedOtherColumns = Table.SelectColumns(AddedCustom, {"ExcelData"}),
// Expand the data
ExpandedData = Table.ExpandTableColumn(RemovedOtherColumns, "ExcelData", Table.ColumnNames(RemovedOtherColumns0[ExcelData])),
// Change data types
ChangedType = Table.TransformColumnTypes(ExpandedData,{{"SizeMB", type number}, {"Created", type datetime}, {"Modified", type datetime}, {"ModifiedReplaced", type datetime}, {"NameLen", Int64.Type}, {"SourcePathLen", Int64.Type}, {"DestinationPathLen", Int64.Type}, {"FileShareAccessed", type datetime}, {"JobDate", type datetime}}),
// Remove duplicate rows based on primary key columns and keep the newest JobDate
GroupedRows = Table.Group(ChangedType, {"Name", "Path", "FileAction"}, {
{"AllRows", each Table.Sort(_, {{"JobDate", Order.Descending}})},
{"TopRow", each Table.FirstN(Table.Sort(_, {{"JobDate", Order.Descending}}), 1)}
}),
RemovedOtherColumns2 = Table.SelectColumns(GroupedRows, {"TopRow"}),
ExpandedTopRow = Table.ExpandTableColumn(RemovedOtherColumns2, "TopRow", Table.ColumnNames(ChangedType))
in
ExpandedTopRow
Last modified:
24 January 2025