Forum Discussion
Anu2021
Dec 10, 2025Copper Contributor
Need help with excel
Hi, I need help with below sample data, i have close to 2lakh + records where the data is represented M1,M2,etc basis the start date which will vary for every record
djclements
Dec 12, 2025Silver Contributor
Here's a couple additional options for MS365...
Shift columns:
=LET(
tbl, A2:N6,
rng, DROP(tbl,1),
beg, INDEX(rng,,1),
end, INDEX(rng,,2),
val, DROP(rng,,2),
low, MIN(beg),
upp, MAX(end),
fnλ, LAMBDA(b,e,(YEAR(e)-YEAR(b))*12+MONTH(e)-MONTH(b)),
dur, fnλ(beg,end)+1,
num, SEQUENCE(,fnλ(low,upp)+1,0),
hdr, EOMONTH(low,num),
cId, 1+num-fnλ(low,beg),
rId, SEQUENCE(ROWS(rng)),
arr, IF((cId>0)*(cId<=dur),INDEX(val,rId,cId),""),
HSTACK(TAKE(tbl,,2),VSTACK(hdr,arr))
)Unpivot/repivot:
=LET(
tbl, A2:N6,
rng, DROP(tbl,1),
beg, INDEX(rng,,1),
end, INDEX(rng,,2),
val, DROP(rng,,2),
dur, (YEAR(end)-YEAR(beg))*12+MONTH(end)-MONTH(beg)+1,
num, SEQUENCE(,COLUMNS(val),0),
arr, IFS(num<dur,EOMONTH(+beg,num)),
err, ISERROR(arr),
rId, SEQUENCE(ROWS(rng)),
pvt, PIVOTBY(TOCOL(IF(err,arr,rId),2),TOCOL(arr,2),TOCOL(IF(err,arr,val),2),SINGLE,0,0,,0),
HSTACK(VSTACK(TAKE(tbl,1,2),INDEX(rng,TAKE(DROP(pvt,1),,1),{1,2})),DROP(pvt,,1))
)See attached...