You can do this really quickly and easily with Power Query.
The following query returns all files in your folder, as a table, and applies a function query for each column returned:
let
Source = Folder.Files("C:\Temp\Combine"),
#"Get A" = Table.AddColumn(Source, "Agency", each fnColumnA([Content])),
#"Get B" = Table.AddColumn(#"Get A", "Advertiser", each fnColumnB([Content])),
#"Get C" = Table.AddColumn(#"Get B", "Start / End", each fnColumnC([Content])),
#"Get D" = Table.AddColumn(#"Get C", "Net Amount", each fnColumnD([Content])),
#"Removed Other Columns" = Table.SelectColumns(#"Get D",{"Agency", "Advertiser", "Start / End", "Net Amount"})
in
#"Removed Other Columns"
The four function queries, to return your four columns are identical, apart from the cell referenced. Name them consistently with the function names used in the CombineFromFolder query.
let GetColumnA = (wb as binary) =>
let
Source = Excel.Workbook(wb, null, true),
Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
Value = Sheet{9}[Column1]
in
Value
in
GetColumnA
let GetColumnB = (wb as binary) =>
let
Source = Excel.Workbook(wb, null, true),
Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
Value = Sheet{17}[Column1]
in
Value
in
GetColumnB
let GetColumnC = (wb as binary) =>
let
Source = Excel.Workbook(wb, null, true),
Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
Value = Sheet{11}[Column5]
in
Value
in
GetColumnC
let GetColumnD = (wb as binary) =>
let
Source = Excel.Workbook(wb, null, true),
Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
Value = Sheet{45}[Column7]
in
Value
in
GetColumnD
Example workbook attached - just change the folder path in the CombineFromFolder query, then refresh. To update, simply refresh the query.
Bookmarks