我在列中有以下值:
123 456 789 65 1
我想在该列的所有值中追加正确数量的零,以使字符的总长度为5.
00123 00456 00789 00065 00001
我该怎么做?
答案 0 :(得分:1)
如果每个单元格中有一个数字,您可以通过将格式更改为“自定义”来轻松完成此操作。
如果数字大于五位数,则会打印所有数字。
=== EDIT === 你解释说这些都在一个单元格中。 @paulmorriss有一个出色的Excel功能解决方案,但让我提供一个VBA解决方案作为替代方案:
Sub Macro1()
Dim txt As String
Dim asWords() As String
Dim zeros As String
txt = vbNullString
asWords = Split(Range("A1").Value) 'asWords(0)="123" etc.
For i = 0 To UBound(asWords) ' emulate StrDup (missing in VBA)
zeros = vbNullString
For j = Len(asWords(i)) + 1 To 5: zeros = zeros + "0": Next j
txt = txt + zeros + asWords(i) + " "
Next i
Range("B1").Value = txt 'Places answer in B1
End Sub
答案 1 :(得分:0)
如果您指定的值在单元格A1中,则将以下公式放在B1到K1中。 K1中的值是您所需要的。你可以指定一个庞大的公式,但是如果它像这样拆分,维护电子表格的人就会更容易看到发生了什么。
in B1 = TEXT(VALUE(LEFT(A1,SEARCH(“”,A1))),“000000”)
in C1 = RIGHT(A1,LEN(A1)-SEARCH(“”,A1))
等。 = TEXT(VALUE(LEFT(C1,SEARCH(“”,C1))),“000000”)
=右(C1,LEN(C1)-SEARCH(“”,C1))
= TEXT(VALUE(LEFT(E1,SEARCH(“”,E1))),“000000”)
=右(E1,LEN(E1)-SEARCH(“”,E1))
= TEXT(VALUE(左(G1,SEARCH(“”,G1))),“000000”)
=右(G1,LEN(G1)-SEARCH(“”,G1))
= TEXT(I1, “000000”)
= B1&“”& D1&“”& F1&“”& H1&“”& J1