Excel 公式,在破折号 (-) 之后但数字之前添加前导 0

Excel formula, add leading 0 after the dash (-) but before the numbers

我的数据看起来像:D-8、FE-09、I-18、P-1 在一个范围内。

我希望从 1 到 9 的所有数字前面都有一个 0。之前的序列将是

D-08、FE-09、I-18、P-01

有没有什么办法可以用公式来做到这一点,或者作为最后的手段用宏来做到这一点?我可以用公式来做到这一点,但是我一步一步地做这件事已经很久了;将字母与数字分开 2 列,添加前导 0,然后将它们放回一起。

使用 TEXTJOIN:

=TEXTJOIN(", ",,FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(A1,",","</b><b>"),"-","</b><b>")&"</b></a>","//b["&(ROW($ZZ:INDEX($ZZ:$ZZ,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))-1)*2+1&"]")&"-"&TEXT(FILTERXML("<a><b>"&SUBSTITUTE(SUBSTITUTE(A1,",","</b><b>"),"-","</b><b>")&"</b></a>","//b["&(ROW($ZZ:INDEX($ZZ:$ZZ,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1))-1)*2+2&"]"),"00"))


根据您的评论,每个单元格中只有一个值:

=LEFT(A1,FIND("-",A1))&TEXT(MID(A1,FIND("-",A1)+1,2),"00")