按类分项统计序号范围

备查。

在一个单元格中列出相同“名”所对应的“序”,以“,”和“~”分割的解答公式写法之一

=LET(ca,A2:A33,cb,B2:B33,cc,C2:C33,fxc,LAMBDA(tarr,REDUCE("",tarr,LAMBDA(x,y,IF(y-(IF(MATCH(y,tarr,0)>1,INDEX(tarr,1,MATCH(y,tarr,0)-1),0))=1,IF(x="",y,CONCAT(x,"~"&y)),IF(x="",y,CONCAT(x,","&y)))))),err,LET(fxb,LAMBDA(bstr,LET(crr,UNIQUE(FILTER(cc,cb=bstr)),IFERROR(HSTACK(bstr,IFERROR(HSTACK(bstr,REGEXP(fxc(TOROW(FILTER(ca,cb=bstr))),"(?<=~)(\d+~)+",2,""),crr),"")),bstr))),fxa,LAMBDA(arr,IF(ROWS(arr)=1,fxb(arr),VSTACK(fxb(INDEX(arr,1)),fxa(DROP(arr,1))))),fxa(UNIQUE(cb))),HSTACK(CHOOSECOLS(err,2),CHOOSECOLS(err,3),CHOOSECOLS(err,4),BYROW(err,LAMBDA(ttx,REGEXP(fxc(TOROW(FILTER(ca,(cb=CHOOSECOLS(ttx,1))*(cc=CHOOSECOLS(ttx,4))))),"(?<=~)(\d+~)+",2,"")))))

黑龙江省
浏览 97
1
9
分享
9 +1
5
1 +1
全部评论 5
 
1231393578237
赞一个
· 四川省
回复
 
√Max
好复杂,看不懂了,拿来用,赞一个!! 可否麻烦你把“序”放在最前列?后面的“名”和“字”可以不显示。
· 四川省
回复
恰同学少年
HSTACK(CHOOSECOLS(err,2),CHOOSECOLS(err,3),CHOOSECOLS(err,4),BYROW(err,LAMBDA(ttx,REGEXP(fxc(TOROW(FILTER(ca,(cb=CHOOSECOLS(ttx,1))*(cc=CHOOSECOLS(ttx,4))))),"(?<=~)(\d+~)+",2,""))))就是拼接过程。 CHOOSECOLS(err,2) 对应 名 列 CHOOSECOLS(err,3) 对应 名的序 列 CHOOSECOLS(err,4) 对应 字 列 BYROW(err,LAMBDA(ttx,REGEXP(fxc(TOROW(FILTER(ca,(cb=CHOOSECOLS(ttx,1))*(cc=CHOOSECOLS(ttx,4))))),"(?<=~)(\d+~)+",2,""))) 对应 字的序 列 你自己根据需要,重新组合,调整 列的顺序就行。公式在这里,随时可以复制粘贴,所以你可以放心大胆的随便修改。
· 黑龙江省
2
回复
 
嘉禾宝宝
嘉禾宝宝 Lv.1 新人创作者WPS寻令官

Lv.1新人创作者

超出能力范围,点个赞
· 安徽省
回复