Excel 2010 中的 TEXT() 函数未按预期填充

Excel 2010 中的 TEXT() 函数未按预期填充

我有一张包含三页的 Excel 工作表:

  1. “输入”-用户输入一些数据
  2. “导出”- 数据被格式化并填充为 PRN 文件导出
  3. “Konstante”-包含一些在导出选项卡中使用的常量值

第一页有一个包含数字的字段(输入格式为“标准”)。给定的数字是“67922200305”

在导出公式中

=TEXT(Konstante!$B$5&Eingabe!$D2;"000000000000000000000000")

因此输入值应该以“60308700”为前缀,并且整个值应用零填充到 24 的长度。

奇怪的是,Export 中的输出是:

000006030870067922200000

我期望它在哪里

000006030870067922200305

导出字段的格式为标准,常量为文本。

对我来说,这看起来像是“四舍五入”问题,尽管我猜“&”应该连接字符串。

答案1

TEXT函数将数值作为第一个参数,因此连接的结果(即Konstante!$B$5&Eingabe!$D2)将转换为数字。请注意,评论建议(Konstante!$B$5&TEXT(Eingabe!$D2)))也会发生同样的情况。

看看这个维基百科条目

虽然 Excel 可以显示 30 位小数,但其对指定数字的精度仅限于 15 位有效数字,并且由于三个问题(四舍五入、截断和二进制存储),计算的精度可能会更低。

您的数字(6030870067922200305)太长,而 Excel 仅保留 15 位有效数字(即603087006792220)。

您可以实现您想要做的事情,仅处理文本值。例如,您可以使用LENREPT函数:

=REPT(0;24-(LEN(Konstante!$B$5)+LEN(Eingabe!$D2)))&Konstante!$B$5&Eingabe!$D2

在这里,我重复0达到 24(减去常数和输入长度),然后我连接常数和输入值。

希望这可以帮助。

相关内容