let
src = Excel.CurrentWorkbook(){[ Name = "sales" ]}[Content],
typed = Table.TransformColumnTypes ( src, { { "дата", type date }, { "выручка", type number } } ),
group = Table.Buffer ( Table.Group ( typed, { "дата" }, { { "выручка", each List.Sum ( [выручка] ), type nullable number } } ) ),
dateFrom = List.Min ( group[дата] ),
dateTo = List.Max ( group[дата] ),
dates = Table.FromColumns (
{ List.Dates ( dateFrom, Duration.TotalDays ( dateTo - dateFrom ) + 1, #duration ( 1, 0, 0, 0 ) ) },
type table [ дата = Date.Type ]
),
transformCurY = Table.TransformColumns ( group, { "дата", ( x ) => Text.From ( x ), type text } ),
renameCurY = Table.RenameColumns ( transformCurY, { { "дата", "Name" }, { "выручка", "Value" } } ),
curYRec = Record.FromTable ( renameCurY ),
transformLastY = Table.TransformColumns ( group, { "дата", ( x ) => Text.From ( Date.AddYears ( x, 1 ) ), type text } ),
groupLastY = Table.Group ( transformLastY, { "дата" }, { { "выручка", each List.Sum ( [выручка] ), type nullable number } } ),
renameLastY = Table.RenameColumns ( groupLastY, { { "дата", "Name" }, { "выручка", "Value" } } ),
lastYRec = Record.FromTable ( renameLastY ),
addCurYSales = Table.AddColumn (
dates,
"выручка",
each Record.FieldOrDefault ( curYRec, Text.From ( [дата] ), null ),
type number
),
addLastYSales = Table.AddColumn (
addCurYSales,
"выручка_Прошлый год",
each Record.FieldOrDefault ( lastYRec, Text.From ( [дата] ), null ),
type number
)
in
addLastYSales |