
cxy12345 + https://club.excelhome.net/thread-1714688-1-1.html
=DROP(REDUCE("",B1:D1,LAMBDA(x,y,VSTACK(x,HSTACK(y&"前三名",LET(S,OFFSET(y,1,,10),V,FILTER(HSTACK(A2:A11,"("&S&")"),RANK(S,S)<=3),TEXTJOIN({"","、"},,SORT(V,2))))))),1)

(
xl("A1:D11",1)
.set_index('学生姓名')
.apply(
lambda x:",".join(f'{k}({v})' for k,v in
x[x.rank(method="min",ascending=False) <= 3]
.sort_values(ascending=False)
.to_dict()
.items()
)
,axis=0
)
)


