争取加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)
调用。
我有要从中转换的数据集。我试过自定义格式,但结果不同。
=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)
调用。