excel 2007:在列中附加某些字符值以使其适当长度

时间:2011-03-11 22:30:20

标签: excel-2007

我在列中有以下值:

123 456 789 65 1

我想在该列的所有值中追加正确数量的零,以使字符的总长度为5.

00123 00456 00789 00065 00001

我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果每个单元格中有一个数字,您可以通过将格式更改为“自定义”来轻松完成此操作。

  1. 右键单击要格式化的单元格。
  2. 从上下文菜单中选择“格式化单元格”
  3. 选择自定义类别。
  4. 在“类型”文本框中输入“常规”一词,输入00000.(这告诉Excel打印使用 领先0)。
  5. 单击“确定”。
  6. 如果数字大于五位数,则会打印所有数字。

    === 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