用TEXT公式字符限制进行string转换?

我试图格式化一个单一的数字存储为文本值。

例如,我想转换:

5145350002005000080

至:

5145-350002-00500-0080

我使用的公式是:

=文本(A1, “0000-000000-00000-0000”)

我收到的输出是:

5145-350002-00500- 0000

为什么最后4个字符是“0000”而不是“0080”? 有字符限制,还是我的公式不正确?

大数引用算术 :

Excel中的限制是一个数字中的15位有效数字。 input一个16位的信用卡号码,1234567890123456将变成1234567890123450。

实际上,即使514535000200500 1111也会导致5145-350002-00500-0000

此外,当你的input单元格被选中时,请看一下公式栏 – 对于我的Excel 2007,我看到:

Excel数量限制

希望有帮助)

编辑:

作为解决任务的解决scheme – 保持你的数字格式为文本,并使用下面的公式:

 =LEFT(A1,4)&"-"&MID(A1,5,6)&"-"&MID(A1,11,5)&"-"&RIGHT(A1,4) 

这是一个自定义函数。 将它放在工作簿的常规代码模块中,可以通过= 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