【发布时间】:2020-03-06 02:19:15
【问题描述】:
我正在尝试编写一个函数,使用以下函数将以 [hh]:mm:ss.000 格式输入的时间列转换为毫秒:
=MINUTE(C75)*60000+SECOND(C75)*1000+RIGHT(TEXT(C75, "hh:mm:ss.000"),3)
通过使用计算器处理数字,我推断出问题在于 SECOND() 函数基于毫秒舍入到最接近的秒数,而不是复制确切的值。例如,00:17:39.320 会正确转换,但 00:17:39.760 不会,因为该函数将使用 40 而不是 39 转换秒。
有人知道解决方法吗?
谢谢!
【问题讨论】:
-
那么不要使用
Second。使用右 6 个字符 × 1000 -
感谢您的建议。我的数字格式可能有问题,因为这也不起作用也不能正常工作。我使用了格式 [hh]:mm:ss.000;@。当我键入值时,单元格看起来正确,但是当我单击它时,Excel 会将时间转换为公式栏中的 hh:mm:ss AM/PM,并在我单击离开时更改单元格中的值。你知道如何解决这个问题吗?
-
Excel 对毫秒分辨率的时间支持不完整。许多(大多数?)时间函数只能工作到秒。 Jim 建议使用基础数值可能是最好的。然后,您将面临与 Excel 渴望“帮助”重新格式化单元格的斗争!
标签: excel rounding milliseconds seconds rounding-error