try in AI2:
Code:
=LET(rws,($D$2:$D$97=$D2)*($G$2:$G$97=$G2),TRANSPOSE(INDEX(SORT(CHOOSE({1,2},VALUE(FILTERXML("<a><b>"&TEXTJOIN("</b><b>",,FILTER($Z$2:$AA$97,rws))&"</b></a>","//b")),VALUE(FILTERXML("<a><b>"&TEXTJOIN("</b><b>",,FILTER($N$2:$O$97,rws))&"</b></a>","//b"))),,-1),,2)))
Revert to FILTERXML formula for columns AB:AC (TEXTSPLIT is a problem at your end).
No don't, see edit below.
Bed.
edit. use
Code:
=MATCH(ROUND(Z2,9),ROUND(SORT(VALUE(FILTERXML("<a><b>"&TEXTJOIN("</b><b>",,FILTER($Z$2:$AA$97,($D$2:$D$97=$D2)*($G$2:$G$97=$G2)))&"</b></a>","//b")),,-1),9),0)
in cell AB2 and copy down and across, it's safer (includes VALUE function).