我有一张包含三页的 Excel 工作表:
- “输入”-用户输入一些数据
- “导出”- 数据被格式化并填充为 PRN 文件导出
- “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
)。
您可以实现您想要做的事情,仅处理文本值。例如,您可以使用LEN
和REPT
函数:
=REPT(0;24-(LEN(Konstante!$B$5)+LEN(Eingabe!$D2)))&Konstante!$B$5&Eingabe!$D2
在这里,我重复0
达到 24(减去常数和输入长度),然后我连接常数和输入值。
希望这可以帮助。