如何在无VBA情况下将时间值四舍五入到最接近的10毫秒?
解决Excel时间四舍五入到最接近10毫秒的问题
你的思路方向完全没问题——把时间转成总毫秒数处理再转回去,但问题出在ROUND函数的第二个参数用错啦!
先拆解你原公式的问题:=ROUND(A1*86400000,10)/86400000
这里ROUND的第二个参数10是指「保留10位小数」,但A1*86400000得到的是整数形式的总毫秒数(比如01:02:03.017转成毫秒就是3723017),对整数保留10位小数根本不会改变它的值,所以最终结果自然和输入一模一样。
正确的公式写法
你需要先把总毫秒数除以10,用ROUND取整(实现四舍五入到10的倍数),再乘以10还原成毫秒数,最后转回到时间格式:
=ROUND(A1*86400000/10,0)*10/86400000
验证你的示例
- 输入
01:02:03.017:A1*86400000 = 3723017→ 除以10得372301.7→ ROUND取整为372302→ 乘以10得3723020→ 除以86400000后得到01:02:03.020,完全符合预期。 - 输入
03:12:44.123:A1*86400000 = 11564123→ 除以10得1156412.3→ ROUND取整为1156412→ 乘以10得11564120→ 除以86400000后得到03:12:44.120,完美匹配需求。
最后关键一步
别忘了把结果单元格的格式设置为hh:mm:ss.000,这样才能正确显示三位毫秒数,否则可能看不到四舍五入后的效果哦!
内容的提问来源于stack exchange,提问作者Gary's Student
相关产品推荐
相关产品推荐

