在小数位后添加0以达到8个字符的公式

时间:2015-05-05 11:18:29

标签: excel

从标题开始,我需要一个公式来在小数位后添加零。这需要确保有8个字符供选择。

例如,7305.2需要7305.002

合同参考ID 需要它。我们的ERP要求所有合同号码ID长度为8个字符,并采用上面显示的格式。

2 个答案:

答案 0 :(得分:2)

考虑以下用户定义函数(UDF):

Public Function PaddIt(r As Range) As String
    Dim st As String, L As Long
    st = r.Text
    L = Len(st)

    If L >= 8 Then
        PaddIt = st
        Exit Function
    End If

    If InStr(1, st, ".") = 0 Then
        st = st & "."
        If Len(st) = 8 Then
            PaddIt = st
            Exit Function
        End If
    End If

    While Len(st) < 8
        st = Replace(st, ".", ".0")
    Wend
    PaddIt = st
End Function

以下是一些示例输入/输出:

enter image description here

如果已有8个字符,则返回输入。
如果输入中没有“”,则“”为添加。
在“”之后填充零,直到长度为8。

用户定义函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel使用UDF:

      =PaddIt(A1)
      

      要了解有关宏的更多信息,请参阅:

      http://www.mvps.org/dmcritchie/excel/getstarted.htm

      http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

      有关UDF的详细信息,请参阅:

      http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

      必须启用宏才能使其生效!

答案 1 :(得分:2)

这是公式解决方案:

=IF(ISERROR(FIND(".",A1)),LEFT(A1&"."&"00000000",8),IF(LEN(A1)<8,LEFT(A1,FIND(".",A1)-1)&"."&RIGHT("00000000"&MID(A1,FIND(".",A1)+1,99),7-LEN(LEFT(A1,FIND(".",A1)-1))),A1))

enter image description here

编辑: link to Excel fomula beautifier