我有一个起始时间和结束时间在Excel中:回合Excel的时间差下一个15分钟间隔
开始时间 晚上9:15
结束时间9:30 PM 花费时间0: 15
我期待围捕到下一个15分钟增量,使用公式:
=ROUNDUP(A1*96,0)/96
但是,这将上面的示例数据从0:15加到0:30(它应该停留在0:15,因为它已经是一刻钟了)
如何在时间差已达到的情况下避免四舍五入一刻钟?
我有一个起始时间和结束时间在Excel中:回合Excel的时间差下一个15分钟间隔
开始时间 晚上9:15
结束时间9:30 PM 花费时间0: 15
我期待围捕到下一个15分钟增量,使用公式:
=ROUNDUP(A1*96,0)/96
但是,这将上面的示例数据从0:15加到0:30(它应该停留在0:15,因为它已经是一刻钟了)
如何在时间差已达到的情况下避免四舍五入一刻钟?
你可以使用
=HOUR(A1)/24+CEILING(MINUTE(A1),15)/(24*60)
其将在 的A1时 - 晚上9:15到晚上9:15 - 下午9时16分至9:30 PM
等
我爱堆栈交换,但我更爱你<3 完美工作,也占了几个小时! –
@RyanEllis thx :)这个链接有更多的ROUND和CEILING,你可能会感兴趣。 http://stackoverflow.com/q/8587474/641067 – brettdj
我通常会期望原始公式起作用。当我在Excel 2007中测试与始终是整个分钟的原始配方ROUNDUP
,brettdj的公式和下面的公式手动输入时间值:
=CEILING(A1,"0:15")
.....所有给我同样的结果
....但如果时间衍生从某种公式计算的,然后,使0:15
被认为是非常略微高于该值的excel浮点运算可引起非常小的舍入误差(虽然它会仍然dis以0:15:00.000
发挥),因此四舍五入为0:30
。
因为brettdj的建议只是着眼于小时和分钟数问题被避免,但它会0:15:59
舍入到0:15
太多,所以这种方法可能是最好
=CEILING(MROUND(A1,"0:0:01"),"0:15")
舍入原来的时间精确到秒与MROUND
(因此处理任何浮点错误),然后四舍五入到下一个四分之一小时
编辑:如果你是使用公式得到th e A1时间值,可能值得在该公式中引入一些舍入,例如,包裹式MROUND像这样四舍五入到最接近的第二
=MROUND(formula,"0:0:01")
它可能看起来像什么也不做改变公式结果方面,而且将有可能避免与任何其他计算任何进一步的浮点问题你可能需要做...然后你的原公式与ROUNDUP
应该工作......
巴里,现货!这正是发生的事情。我正在做一个减法,结束时间 - 开始时间,这增加了你描述的舍入误差。现在我知道为什么这一切都发生在第一位感谢澄清! –
不错的后续巴里 – brettdj
是否有可能在您的数据中有秒?我只是尝试了你的公式,它似乎工作正常(结果在你的例子0:15)。 – RocketDonkey
所有秒都是0,所以没有...我没有在Excel 2007中得到预期的结果... brettdj的解决方案工作完美 –
是的,他们通常会这样做:) – RocketDonkey