爆炸号码string并更改格式

我有很多string,如:

“1.5.22.1.2”

我需要把它拆开,然后像下面这样重新组合起来:

“1.05.22.01.02”

不同的是,第一个没有前导零。

这是一个很大的“复制,操作和粘贴”工作,因为这些string被用作一个out程序中的代码。

一个非正统的解决scheme是打开一个新的工作表,并执行以下操作:

1)复制您想要更改的所有数字(1.5.22.1.2),并将其粘贴到新的工作表中。

2)突出显示单元格,并进入“数据”选项卡并select“文本到列”S

2a)select分隔符并按NEXT

2b)select分隔符作为标签和其他只有一个点:

在这里输入图像说明

2c)命中完成。

现在,每个数字都应该放在一个新的列中,如果条件将它们连接起来,那么您将使用它们。

在这里输入图像说明

那么你可以根据需要修改列:

例如我有:

对于第1列: =D6

对于第2列: =IF(E6<10, CONCATENATE(0,E6),E6)

对于第3列: =L6

对于第4列: =IF(G6<10, CONCATENATE(0,G6),G6)

对于第5列: =IF(H6<10, CONCATENATE(0,H6),H6)

如果这是你之后的输出,那么我们可以通过串联重新挤在一起:

在这里输入图像说明

最终产品是P列(或我的第6列)

级联公式为: =CONCATENATE(D6,".",E6,".",F6,".",G6,".",H6)

也许一个VBA UDF更简单:

 Function FormatThis(oCell As Range) As String Dim vValue As Variant Dim vSplit As Variant Dim lCt As Long vSplit = Split(oCell.Value, ".") For lCt = LBound(vSplit) + 1 To UBound(vSplit) vSplit(lCt) = Format(vSplit(lCt), "00") Next FormatThis = Join(vSplit, ".") End Function 

从你的手机调用= FormatThis(A2)