日期/时间的字符串表示之间的差异

时间:2009-12-01 12:53:11

标签: excel date excel-formula excel-2007 worksheet-function

在Excel 2007中,我想要以下字符串日期/时间的差异:

  A                         B                          C
1 Date1                     Date2                      Difference of A and B
2 2009.11.28 01:25:46:0287  2009.11.28 01:25:46:0287   ?
3 2009.11.28 01:25:46:0443  2009.11.28 01:25:46:0443   ?

我想通过将字符串转换为日期/时间然后将结果转换为两个转换日期/时间的差异来获得差异。

2 个答案:

答案 0 :(得分:1)

计算零的一种相当长篇的方法(例子):

=SUBSTITUTE(LEFT(A2,10),".","/")+MID(A2,12,8)+RIGHT(A2,4)/86400000-(SUBSTITUTE(LEFT(B2,10),".","/")+MID(B2,12,8)+RIGHT(B2,4)/86400000)  

根据特殊要求而略短:

=SUBSTITUTE(LEFT(A2,10),".","/")+REPLACE(RIGHT(A2,13),9,1,".")-(SUBSTITUTE(LEFT(B2,10),".","/")+REPLACE(RIGHT(B2,13),9,1,"."))

答案 1 :(得分:0)

我无法想出一个非常好的方法来做到这一点...希望其他人会这样做。话虽如此,以下内容可能会为您提供所需。

要转换主日期部分,请使用以下公式(假设字符串日期在A1中):

=DATE(MID(A1,1,4),MID(A1,6,2),MID(A1,9,2)) +
    TIME(MID(A1,12,2),MID(A1,15,2),MID(A1,18,2))

要转换小数第二部分,请使用:

=VALUE(MID(A1,21,4))/10000

可以轻松地减去日期/时间部分,也可以减去小数部分。

我遇到麻烦的地方是将这些部分重新组合成Excel将以合理的方式实际显示的整体。我终于把两个日期之间的差异乘以86400(= 24 * 60 * 60 - 典型的一天中的秒数),然后在小数第二部分中加上差异。

希望这会有所帮助。 问候, 理查德

P.S。我不喜欢这个解决方案,其中最大的一个是公式的脆弱性 - 如果日期格式发生变化,公式将需要调整。