我正在尝试格式化存储为文本值的单个数字。
例如,我想转换:
5145350002005000080
要:
5145-350002-00500-0080
我使用的公式是:
=文本(A1, “0000-000000-00000-0000”)
我收到的输出是:
5145-350002-00500-的 0000
为什么最后4个字符“0000”而不是“0080”正如我所料?是否有字符限制,或者我的公式不正确?
答案 0 :(得分:3)
Excel中的限制是一个数字中的15位有效数字。输入16 数字信用卡号码和1234567890123456将成为 1234567890123450。
实际上,即使是514535000200500 1111 也会产生5145-350002-00500-0000
。
此外,当您选择输入单元格时,请查看公式栏 - 对于我的Excel 2007,我看到:
希望这很有帮助)
<强>编辑:强>
作为解决任务的解决方案 - 将您的数字格式化为文字并使用以下公式:
=LEFT(A1,4)&"-"&MID(A1,5,6)&"-"&MID(A1,11,5)&"-"&RIGHT(A1,4)
答案 1 :(得分:2)
这是一个自定义功能。将它放在工作簿的常规代码模块中,您可以在单元格中调用它= FormatLargeNumber(“A1”)
Public Function FormatLargeNumber(val As String)
'This function parses extremely large numbers per your example.
' Modify as needed.
FormatLargeNumber = Left(val, 4) & "-" _
& Mid(val, 5, 6) & "-" & _
Mid(val, 11, 5) & "-" & _
Right(val, 4)
End Function