Excel时间问题——毫秒以及超过24小时的时间

最近,一位同事因工作需要,从自动存储数据的设备上导入了大量的数据到工作簿中,其中有一列是时间,但是时间含有毫秒,如下图1所示,要求将上下相邻两单元格相减。由于含有毫秒,减出来的结果显示#VALUE!(值错误),同时由于要将所有时间相加,获取相加后的结果,但是会得到看起来明显不正确的结果(当相加的值超过24后)。
下面是我的解决方法,如果哪位朋友有更好的方法,请告诉我。

图1
如上图所示,在单元格A1和A2中是带有毫秒的时间,当我在单元格B1中输入公式“=A2-A1”时,会出现错误提示#VALUE!。为此,我先在单元格C1和C2中提取时、分、秒并将其转换为时间数值;在单元格D1和D2中提取毫秒并将其也转换为时间数值;在单元格E1和E2中将刚才C列和D列中的单元格相加,得到带毫秒的时间数值;最后,在单元格F1中将E2的值减去E1的值,即为两者之差。同时,设置单元格F1的格式为“hh:mm:ss.000”。最终结果如上图1所示,其中所使用的公式如下图2所示。

图2
对于表示超过24小时的时间问题,将相应的单元格自定义格式设置就行了。如图3所示,有5个时间,相加后的结果为“14:00”,显然不正确。

图3
其实,只要将该单元格(此处为单元格A6)的格式设置为“[h]:mm”即可,如下图4所示。

图4


提示:您可以在评论中使用HTML标签,且任何与HTML标签相同的符号都会被理解为HTML标签并以相应的格式显示.如果您的评论中有代码,可以使用相应的标签,例如,如果有VB或VBA代码,则可以使用[vb]标签,即[vb]放置的代码[/vb],这样会很清晰地显示代码.

1条评论

  1. bibisin 说到:

    毫秒计算后是#VALUE,我这边不会,我是以前后的now()然后赋成值,进行加减,以大值减去小值还会返回时间格式,以小值减大值则得以通用/G才能体现出数值

留下回复