= Table.Group(Source, {"Column1"}, {{"Column2", each [Column2], type list}, {"Column3", each Text.Combine([Column2], " "), type text}})
(page) => let
Source = Web.Page(Web.Contents(“http://XXX/page/” & Number.ToText(page))),
Data0 = Source{0}[Data]
in
Data0
let
Source = Table.Combine(List.Transform({1..10}, Query))
in
Source
[
Source = Excel.CurrentWorkbook(){[Name="TABLE"]}[Content],
SourceTable = Table.AddIndexColumn(Source,"RowNo",1),
AddPayeeID = Table.FillDown(Table.AddColumn(SourceTable,"PayeeID", each if [Full Name] = null then null else [RowNo]),"PayeeID"),
AddClaimID = Table.FillDown(Table.AddColumn(AddPayeeID,"ClaimID", each if [Claim Date] = null then null else [RowNo]),"ClaimID"),
modSource = Table.FillDown(Table.AddColumn(AddClaimID,"ClaimItemID", each if [Start Date] = null then null else [RowNo]),"ClaimItemID"),
PayeeTable = Table.SelectRows(Table.SelectColumns(modSource,{"Full Name","Grade","PayeeID"}), each [Full Name] <> null),
ClaimsTable1 = Table.SelectRows(Table.SelectColumns(modSource,{"Claim Date","Payment Date","ClaimID","PayeeID","Status","Total Claimed","Amount Paid"}), each [Claim Date] <> null),
ClaimsTable = Table.TransformColumns(ClaimsTable1,{{"Total Claimed",each if _ = "NULL" then 0 else _},{"Amount Paid",each if _ = "NULL" then 0 else _}}),
ClaimsItemsTable = Table.SelectRows(Table.SelectColumns(modSource,{"Start Date","ClaimID","PayeeID","ClaimItemID","Expense Type","Euro Line Amount"}), each [Start Date] <> null),
ClaimsItemsDetailsTable = Table.SelectRows(Table.SelectColumns(modSource,{"ClaimID","PayeeID","ClaimItemID","Quantity","Unit","Net Total (EUR)"}), each [#"Net Total (EUR)"] <> "NULL")
]
let
days={1..31},
months={1..12},
years={2000..2010},
monthLU={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"},
dayT=Table.FromList(days,each {_},{"Day"}),
monthT=Table.FromList(months,each {_},{"Month"}),
yearT=Table.FromList(years,each {_},{"Year"}),
dayJ = Table.AddColumn(dayT, "joiner", each 1),
monthJ = Table.AddColumn(monthT, "joiner", each 1),
yearJ = Table.AddColumn(yearT, "joiner", each 1),
yearmonth=Table.Join(yearJ,"joiner",monthJ,"joiner"),
yearmonthday=Table.Join(yearmonth,"joiner",dayJ,"joiner"),
addDate=Table.AddColumn(yearmonthday,"Date",each let x = try #date([Year],[Month],[Day])
in if x[HasError]
then #date(1,1,1)
else x[Value]),
removeErrors=Table.SelectRows(addDate,each not([Date]=#date(1,1,1))),
cleanCols=Table.SelectColumns(removeErrors,{"Date","Year","Month"}),
renameCols = Table.RenameColumns(cleanCols,{"Month","MonthNo"}),
addtextDate = Table.AddColumn(renameCols,"TextDate",each Date.ToText([Date],"YYYYMMDD")),
addQtr = Table.AddColumn(addtextDate,"Qtr",each "Qtr" & Text.From(Date.QuarterOfYear([Date]))),
DateDim = Table.AddColumn(addQtr,"Month",each monthLU{[MonthNo]-1})
in
DateDim