在字母和连字符之间添加连字符



我有一个示例名称列表:

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),,"-")

最新更新