基本上我有一长串ID(超过900),格式如下(例子):
1.1.1
等
我希望将其显示为:
01.01.01
如何添加0而不会弄乱10.10.10之类的要求号码(我不希望这个显示为010.010.010)。
这可能是一个简单的希望!基本上只想在数字小于10时添加前导0。
干杯
答案 0 :(得分:0)
假设您的A列中的ID列表如下
1.1.1 2.2.2 1.3.1 1.2.3 1.10.1 1.1.10 10.1.1 10.1.10 10.10.10 1.10.10
简单的Excel解决方案是
1 - 在A列中选择范围。转到Data --> Text to Columns --> Delimited --> Other --> Put . as delim text
。这会将您的A列数据划分为3列,如下所示
2 - 在D1中,输入=TEXT(A1,"00")
。拖动并填充D1:F10
3 - 在G1中输入.
,然后拖动并填充至G10
4 - 在H1中,输入=CONCATENATE(D1,G1,E1,G1,F1)
并拖动并填充至H10并vo!
VBA解决方案
Sub vbaSol()
For Each dataCell In Range("A1:A10")
splitData = Split(dataCell.Value, ".")
For i = 0 To UBound(splitData)
If CInt(splitData(i)) < 10 Then splitData(i) = "0" & CStr(splitData(i))
Next i
dataCell.Value = Join(splitData, ".")
Next dataCell
End Sub
答案 1 :(得分:0)
分三部分,然后连接答案。对于左边三分之一,使用FIND()函数来定位TEXT()函数内LEFT()函数内的第一个点/句点,如下所示:TEXT(LEFT(A1,FIND(“。”,A1)-1) ,“00。”)这将给你01 .-&gt; 10.
对于右边第三个,使用FIND()函数及其可选的第三个参数来指定从哪里开始寻找点。第二个点可以不早于第四个字符。从长度LEN()函数中减去FIND(),在TEXT()函数内的RIGHT()函数内,如下所示:TEXT(RIGHT(A1,LEN(A1)-FIND(“。”,A1,4)) ,“00”)这给你01-> 10。
对于中间三分之一,使用带有FIND()函数组合的MID()函数来获取数字。它更复杂,但看起来像这样: TEXT(MID(A1,FIND(”。 “A1)+ 1,FIND(”。 “A1,FIND(”。 “A1)+1) - 查找(”。 “A1)),” 00。 “) 从第一个点后的1个字符到“找到第二个点减去第一个点”的长度获得A1的中间位置。把它变成文字。
总之,看起来像这样: = TEXT(LEFT(A1,FIND(,A1)-1), “ ”“ 00 ”)及TEXT(MID(A1,FIND(,A1)+ 1,FIND(,A1“。 ”“。” ,FIND(,A1 “ ”)1) - 查找(,A1)), “00 ”)及“。”; TEXT(RIGHT(A1,LEN(A1) - 查找(,α-1,4“。” )), “00”)