本帖最后由 edwin11891 于 2024-10-3 20:33 编辑
不用新函数循环起来实在费力,还是跑老式绿皮火车:![](https://clubstatic.excelhome.net/image/smiley/default/smile.gif)
- =LET(t,SCAN(B2,SEQUENCE(10),LAMBDA(x,y,LET(Smod,IF(FLOOR(x/26,1)=(x/26),26,MOD(x,26)),(x-Smod)/26))),s,TOCOL(IF(t<0,1/0,t),3),Ra,VSTACK(B2,s),a,IF(TAKE(Ra,-1)=0,DROP(Ra,-1),Ra),b,IF(FLOOR(a/26,1)=(a/26),26,MOD(a,26)),c,ROWS(b),d,CONCAT(CHAR(64+INDEX(b,c-SEQUENCE(c)+1))),d)
复制代码
方法2稍短:
- =LET(fx,LAMBDA(x,IF(FLOOR(x/26,1)=(x/26),26,MOD(x,26))),t,REDUCE(B2,SEQUENCE(10),LAMBDA(x,y,VSTACK(B2,(x-fx(x))/26))),s,TOCOL(IF(t>0,t,1/0),3),n,CHAR(64+fx(s)),Res,CONCAT(INDEX(n,ROWS(n)-SEQUENCE(ROWS(n))+1)),Res)
复制代码
|