2

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

例如,我想转换:

5145350002005000080

到:

5145-350002-00500-0080

我使用的公式是:

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

我收到的输出是:

5145-350002-00500- 0000

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

4

2 回答 2

3

引用大数算术

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

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

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

Excel 数量限制

希望对您有所帮助)

编辑:

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

=LEFT(A1,4)&"-"&MID(A1,5,6)&"-"&MID(A1,11,5)&"-"&RIGHT(A1,4)
于 2013-02-07T16:26:38.517 回答
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
于 2013-02-07T16:39:39.270 回答