=LET(
a,FILTER(A3:A100,B3:B100="A"),
b,FILTER(A3:A100,B3:B100="B"),
c,DROP(REDUCE({0,0},SEQUENCE(ROWS(a)),LAMBDA(x,y,VSTACK(x,HSTACK(INDEX(a,y),IF(SUM(--(INDEX(x,,1)=INDEX(a,y))),MAX((INDEX(x,,1)=INDEX(a,y))*INDEX(x,,2))+3, MIN(MAP(SEQUENCE(y),LAMBDA(z, IF(SUM(--(INDEX(x,,2)=z)),"",z))))))))),1),
d,DROP(REDUCE({0,0},SEQUENCE(ROWS(b)),LAMBDA(x,y,VSTACK(x,HSTACK(INDEX(b,y),IF(SUM(--(INDEX(x,,1)=INDEX(b,y)))+SUM(--(INDEX(TAKE(a,y),,1)=INDEX(b,y))),MAX((INDEX(x,,1)=INDEX(b,y))*INDEX(x,,2), IFERROR(((INDEX(TAKE(c,MIN(y,ROWS(c))),,1)=INDEX(b,y))*INDEX(TAKE(c,MIN(y,ROWS(c))),,2)),100))+3, MIN(MAP(SEQUENCE(y),LAMBDA(z, IF(SUM(--(INDEX(x,,2)=z)),"",z))))))))),1),
IFERROR(HSTACK(WRAPROWS(TAKE(SORTBY(c,INDEX(c,,2)),,1),3),WRAPROWS(TAKE(SORTBY(d,INDEX(d,,2)),,1),3)),"")
)
Bookmarks