Forum Discussion
Charcho
1 year agoHelper I
New Columns with Specific Row Values from other Columns in Multiple Excel Files
Hello, I’m loading multiple Excel files from a folder in a PBI query. I want to fill a new column with the value 'Apple' (Column3-row1) and another new column with the value '2025' (Column3-row3). Al...
- 1 year ago
Charcho, check this
Output (first few columns)
Change folder addres in Source step to folder with your excel files
let Source = Folder.Files("c:\Users\abc\Downloads\PowerQueryForum\Charcho\"), FilteredExtension = Table.SelectRows(Source, each ([Extension] = ".xlsx")), TransformedContent = Table.TransformColumns(FilteredExtension, {{"Content", each [ a = Excel.Workbook(_){0}[Data], // T = BinaryToTable{0}[Content], T = a, R = [ Fruit = T{0}[Column1], Year = T{2}[Column1] ], RemovedTopRows = Table.PromoteHeaders(Table.Skip(T, each not List.Contains(Record.ToList(_), "jan", Comparer.OrdinalIgnoreCase))), FilteredActualYear = Table.FirstN(RemovedTopRows, each not List.Contains(Record.ToList(_), "jan", Comparer.OrdinalIgnoreCase)), FilteredOutDiffAndTotal = Table.SelectRows(FilteredActualYear, each not ([Column1] = null) and not (List.Contains(Record.ToList(_), {"total", "diff"}, (x,y)=> List.AnyTrue(List.Transform(y, (w)=> (Text.Contains(Text.From(x), w, Comparer.OrdinalIgnoreCase))))))), RemovedBlankColumns = [ blankCols = Table.SelectRows(Table.TransformColumnTypes(Table.Profile(FilteredOutDiffAndTotal),{{"NullCount", Int64.Type}, {"Count", Int64.Type}}), each [Count] = [NullCount])[Column], removed = Table.RemoveColumns(FilteredOutDiffAndTotal, blankCols) ][removed], RenamedColumns = Table.RenameColumns(RemovedBlankColumns,{{"Column1", "Numbers"}}), MergedColumns = Table.CombineColumns(RenamedColumns, List.FirstN(List.Skip(Table.ColumnNames(RenamedColumns)), each Text.StartsWith(_, "Column")) ,Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Titles"), RemovedSquareTitles = Table.TransformColumns(MergedColumns,{{"Titles", each Text.Trim(_, {"▪"}), type text}}), RemovedColumns = Table.SelectColumns(RemovedSquareTitles, List.Select(Table.ColumnNames(RemovedSquareTitles), each not Text.StartsWith(_, "Column"))), RenamedColumns2 = Table.RenameColumns(RemovedColumns,{{Table.ColumnNames(RemovedColumns){2}, "DecPrevious"}}), RenamedColumns3 = Table.TransformColumnNames(RenamedColumns2, each Text.BeforeDelimiter(_, "_")), Ad_FuitAndYear = Table.FillDown(Table.FromColumns({{R[Fruit]}} & {{R[Year]}} & Table.ToColumns(RenamedColumns3), {"Fruit", "Year"} & Table.ColumnNames(RenamedColumns3)), {"Fruit", "Year"}) ][Ad_FuitAndYear], type table}}), Combined = Table.Combine(TransformedContent[Content]) in Combined