使用TEXT公式字符限制的字符串转换?

时间:2013-02-07 16:11:42

标签: excel excel-formula

我正在尝试格式化存储为文本值的单个数字。

例如,我想转换:

5145350002005000080

要:

5145-350002-00500-0080

我使用的公式是:

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

我收到的输出是:

5145-350002-00500-的 0000

为什么最后4个字符“0000”而不是“0080”正如我所料?是否有字符限制,或者我的公式不正确?

2 个答案:

答案 0 :(得分:3)

引自Large Number Arithmetic

  

Excel中的限制是一个数字中的15位有效数字。输入16   数字信用卡号码和1234567890123456将成为   1234567890123450。

实际上,即使是514535000200500 1111 也会产生5145-350002-00500-0000

此外,当您选择输入单元格时,请查看公式栏 - 对于我的Excel 2007,我看到:

Excel number limit

希望这很有帮助)

<强>编辑:

作为解决任务的解决方案 - 将您的数字格式化为文字并使用以下公式:

=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