-2

在 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   ?

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

4

2 回答 2

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,"."))
于 2015-03-10T21:30:21.847 回答
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 - 典型一天中的秒数),然后在小数秒部分加上差。

希望这可以帮助。问候,理查德

PS 这个解决方案有很多我不喜欢的地方,其中最大的就是公式的脆弱性——如果日期格式发生变化,则需要调整公式。

于 2009-12-01T13:50:29.637 回答