let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Value", type number}}),
#"Inserted Year" = Table.AddColumn(#"Changed Type", "Year", each Date.Year([Date]), Int64.Type),
#"Grouped Rows" = Table.Group(#"Inserted Year", {"Year"}, {{"Min", each List.Min([Value]), type nullable number}, {"Max", each List.Max([Value]), type nullable number}})
in
#"Grouped Rows"
= LAMBDA(val,crit,
LAMBDA(yr,
MAX(IF(crit=yr,val))
))
= LAMBDA(val,crit,
LAMBDA(yr,
MIN(IF(crit=yr,val))
))
= LAMBDA(fn,y,
LET(
n, COUNTA(y),
ℓ, INDEX(y,n),
m, fn(ℓ),
k, SEQUENCE(1,n-1),
residual, INDEX(y,k),
return, IF(n>1, MAP(fn,residual), 0),
IF(n>1, XSTACK(return,m), m) ) )
= LAMBDA(A,v,
LET(
n, COUNTA(A),
k, SEQUENCE(n+1),
IF(k<=n,A,v))
)