我有一个示例名称列表:
TW1
UD1
SS1
S17
SS23
UD12
我想在字母和数字之间添加一个连字符:
TW-1
UD-1
SS-1
S-17
不锈钢-23
UD-12
UD786
我试过这个:
=MID(A1,1,COUNT(1*MID(A1,{1,2,3,4,5,6,7,8,9,0},1((((&"-"&SUBSTITUTE(A1,MID(A1,1,COUNT(1*MID(A1,{1,2,3,4,5,6,7,8,9,0},1(((,"(
结果并不一致。它给出以下结果:
T-W1
U-D1
S-1
中一至中七
不锈钢-23
UD-12
如何实现所需的输出?
=LEFT(A1,2-ISNUMBER(--MID(A1,2,1(((&"-"&RIGHT(A1,LEN(A1(-(
2-ISNUMBER(--MID(A1,2,1(((
是另一种选择。 这样做的技巧是在测试它是否是数字之前将字符串形式的数字转换为数字。 而不是 -- 你可以做 1* 或 0+。
此解决方案仅适用于示例数据在第一个数字之前包含 1 或 2 个字符的情况。
比 @Forward Ed 的 A 略短:
=REPLACE(A1,2+(CODE(MID(A1,2,1))>64),,"-")