【问题标题】:Differences between string representations of date/times日期/时间的字符串表示之间的差异
【发布时间】:2009-12-01 12:53:10
【问题描述】:

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

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

【问题讨论】:

  • 您自己的问题重复:stackoverflow.com/questions/1825884/… 如果您想澄清问题,请编辑原始问题,不要发布新问题。
  • 什么程序使用冒号作为小数分隔符?
  • @pnuts - 是的,我在想最简单的方法可能是使用 =0 并根据需要填写。

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


【解决方案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,"."))

【讨论】:

    【解决方案2】:

    我想不出一个非常好的方法来做到这一点......希望其他人会。话虽如此,以下内容可能会满足您的需求。

    要转换主要日期部分,请使用以下公式(假设字符串日期在 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 - 一天中的秒数),然后加上小数秒部分的差值。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多