Списки против записей-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