Списки против записей-2

#АнатомияФункций – списки



Всем привет!

Ну вот не отпускала мысль, особенно после пересмотра прошлого видео, что что-то не так.

По этому поводу код:

let

f=(x)=>[a=dm(x{0},x{1}),

b=Duration.TotalHours(Date.EndOfMonth(x{0})-x{0}),

c=Duration.TotalHours(x{1}-Date.StartOfMonth(x{1})),

d=ym(x{0})-num,

e=x&List.Repeat({null},d),

f=if a=0 then e&{Duration.TotalHours(x{1}-x{0})}

else if a=1 then e&{b,c}

else e&{b}&List.Range(hrs,d+1,a-1)&{c}][f],

h=(x,y,z)=>if x>y then z else @h(Date.AddMonths(x,1),y,z&{x}),

ym=(x)=>Date.Year(x)*12+Date.Month(x),

dm=(x,y)=>ym(y)-ym(x),



from = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

ot = Date.StartOfMonth(List.Min(from[Начало работ])),

num = ym(ot),

do = List.Max(from[Завершение работ]),

lst = List.Buffer(h(ot,do,{})),

nms = Table.ColumnNames(from)&List.Transform(lst,(x)=>DateTime.ToText(x,"yyyyMM")),

hrs = List.Buffer(List.Transform(lst,(x)=>Duration.TotalHours(Date.EndOfMonth(x)-x))),

to = Table.FromList(Table.ToList(from,f),(x)=>x,nms)

in

to


Ни разу не лаконичный, зато дело своё делает как надо )))



Ну а что тут к чему смотрите, как всегда, на Ютубе



Лайк, коммент, подписка приветствуются )))

Поддержка канала



Надеюсь, было полезно.

Всех благ!

@buchlotnik