争取加0完成串数到3

Striving to Add 0 to complete the string number to 3

我有要从中转换的数据集。我试过自定义格式,但结果不同。

=TEXT(A1,"000")

Data
.3.11.333
.3.3.3.3
11.33.1

至此

Result
003.011.333
003.003.003.003
011.033.001

查看您的数据,我实际上并不认为您在处理数字,而是包含数字字符的文本。也许您最好的选择是在使用 TEXT() 之前将您的数据“拆分”到一个数组中,然后将它们重新组合在一起:

B1中的公式:

=TEXTJOIN(".",,TEXT(FILTERXML("<t><s>"&SUBSTITUTE(A1,".","</s><s>")&"</s></t>","//s[.*0=0]"),"000"))

此处的要点是仅包含数组中实际为数字的元素。我们通过 xpath-expression [.*0=0] 过滤它们,以避免空字符串元素来自前导或尾随点。


编辑:

这可以像这样简化为 UDF:

Function REFORMAT(str As String) As String

With Application
    REFORMAT = Join(.Text(.Transpose(.FilterXML("<t><s>" & Replace(str, ".", "</s><s>") & "</s></t>", "//s[.*0=0]")), "000"), ".")
End With

End Function

通过=REFORMAT(A1)调用。