本帖最后由 edwin11891 于 2024-11-23 17:47 编辑
两种方式,一种分行,一种合并到一行。同时将数字按照从小到大排列。
- =LET(Src,DROP(TEXTSPLIT(CONCAT(A1:A12&"+"),"-","+"),-1),Sa,TAKE(Src,,1),Sb,TAKE(Src,,-1)*1,Sc,UNIQUE(Sa),MAP(Sc,LAMBDA(x,LET(Se,SORT(FILTER(Sb,Sa=x)),MID(CONCAT(IFS(ISNA(MATCH(Se-1,Se,)),","&x&"-"&Se,ISNA(MATCH(Se+1,Se,)),"~"&x&"-"&Se,1,"")),2,99)))))
复制代码
- =LET(Src,DROP(TEXTSPLIT(CONCAT(A1:A12&"+"),"-","+"),-1),Sa,TAKE(Src,,1),Sb,TAKE(Src,,-1)*1,Sc,UNIQUE(Sa),TEXTJOIN(",",,MAP(Sc,LAMBDA(x,LET(Se,SORT(FILTER(Sb,Sa=x)),MID(CONCAT(IFS(ISNA(MATCH(Se-1,Se,)),","&x&"-"&Se,ISNA(MATCH(Se+1,Se,)),"~"&x&"-"&Se,1,"")),2,99))))))
复制代码
|