答案1
使用 Office 365:
=LET(
us,A2:A201,
hr,B2:D201,
ttl,A1:D1,
VSTACK(ttl,DROP(REDUCE("",us&"|"&BYROW(hr,LAMBDA(z,TEXTJOIN("{",FALSE,z))),LAMBDA(a,b,LET(c,TEXTAFTER(b,"|"),VSTACK(a,HSTACK(TEXTSPLIT(TEXTBEFORE(b,"|"),,";"),DROP(TEXTSPLIT(REPT(c&"}",ROWS(TEXTSPLIT(b,,";"))),"{","}"),-1)))))),1)))
;
基本上,它会在(用户)范围内拆分文本us
。然后它会在(层次结构)范围内按行重复值hr
。然后它会水平堆叠它们。
然后 REDUCE 会垂直堆叠每行的输出。最后我们堆叠在ttl
(标题)范围内。