excel中的日期转换公式

时间:2013-05-09 19:13:34

标签: excel excel-formula

我有一些日期格式为“09-MAY-13 06.42.46.097127000 PM”,需要转换为此格式“2013-05-09T18:42:47.132Z”。我的目标是找出更早发生的事情。我不确定如何格式化这些日期。

2013-05-09T18:42:47.132Z    09-MAY-13 06.42.46.097127000 PM
2013-05-08T20:56:55.821Z    06-MAY-13 03.22.09.129443000 PM
2013-05-08T20:51:45.287Z    06-MAY-13 03.03.22.975700000 PM
2013-05-08T20:55:34.719Z    06-MAY-13 10.40.55.924181000 PM

我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

我最初发布了一个将您的一种格式转换为另一种格式的答案。我现在看到你需要compare它们,所以你可以将A2中的这种格式转换为日期/数字值....

09-MAY-13 06.42.46.097127000 PM

.....用这个公式

=SUBSTITUTE(SUBSTITUTE(A2,".",":",1),".",":",1)+0

和A3中的这种格式

<强> 2013-05-09T18:42:46.0​​97z

....使用此公式

=SUBSTITUTE(SUBSTITUTE(A3,"T"," "),"z","")+0

您可以按照自己喜欢的方式格式化结果,保留为数字或格式为m/d/yyyy hh:mm:ss.000或类似。您现在可以轻松地与类似

的公式进行比较

=B2>B3

或使用MIN或MAX

获得更小或更大

答案 1 :(得分:0)

如果在单元格A1中具有原始样式的值,请将以下公式放在不同的单元格中:

=DATE((2000+MID(A1,8,2)),MATCH(MID(A1,4,3),{"JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"},0),LEFT(A1,2))+TIME(MID(A1,11,2)+IF(RIGHT(A1,2)="PM",12,0),MID(A1,14,2),MID(A1,17,12))

然后,在该目标单元格中​​,应用以下格式:

yyyy-mm-ddThh:mm:ssZ

请注意以下事项:

  • 这假设您的所有月份都是3个字符(JAN,FEB,MAR)。因为你的例子是&#34; MAY&#34; (已经有3个字符),我不确定你的其他几个月是怎么出现的。较长的月份名称使公式稍微复杂化。如果你需要它,我可以帮忙解决这个问题,并且不知道该怎么做。
  • 我无法找到一种方法来强制Excel在这种复杂的日期/时间格式的上下文中显示小数秒,即使您的示例显示细分为千分之一秒。希望这不是一个交易破坏者。如果需要显示小数秒,您可能需要使用单独的公式处理此结果,以将结果显示为文本,与上面的公式无关,您可以使用该公式计算之前的日期。

答案 2 :(得分:0)

添加Joe的答案...... 要让Excel将一列与另一列进行比较,您需要从第一列到第二列进行相同类型的操作。

那看起来像

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

为每个转换创建一个新列后,让Excel比较它们应该很简单。