在 A 列中,从 A1 开始,我有一组数据库列名,它们是 Pascale 大小写且没有空格。我想在 B 列中使用 Excel 公式在每个大写字母或数字之前插入空格。理想情况下,任何连续的大写字母或数字都将保持在一起。我过去用 C# 做过这个,但在这个项目中,我什至不能使用 VBA 宏。示例输出:
仅使用公式可以实现这个或类似的东西吗?
最佳答案
这非常困难,但是对于给定的示例数据,ms365 是可行的:
B1
中的公式:
=MAP(A1:A10,LAMBDA(v,TRIM(REDUCE(v,SEQUENCE(LEN(v),,LEN(v),-1),LAMBDA(a,b,LET(x,MAKEARRAY(26,3,LAMBDA(r,c,CHOOSE(c,CHAR(r+64),CHAR(r+96),r-0))),y,MID(a,b,1),z,MID(a,b+1,1),r,BYCOL(x,LAMBDA(c,SUM(EXACT(c,y)+EXACT(c,z)))),IF(MAX(r)=1,LEFT(a,b-1)&IF((CONCAT(r)="110")*(EXACT(UPPER(y),y))," "&y,y&" ")&RIGHT(a,LEN(a)-b),a)))))))
也许其他人有更短的解决方案...
关于在大写字母和数字前插入空格的Excel公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74745280/