0

我有一些日期格式为“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

我怎么能这样做?

4

3 回答 3

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)。由于您的示例是“MAY”(已经 3 个字符),我不确定您的其他月份会如何出现。较长的月份名称会使公式复杂一些。如果您需要它并且不知道该怎么做,我可以提供帮助。
  • 我找不到强制 Excel 在这种复杂的日期/时间格式的上下文中显示小数秒的方法,即使您的示例显示秒细分为千分之一。希望这不会破坏交易。如果需要显示小数秒,您可能需要使用单独的公式来处理此问题,以将结果显示为文本,独立于上面的公式,您可以使用它来计算哪个日期更早。
于 2013-05-09T19:42:51.143 回答
0

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

13 年 5 月 9 日 06.42.46.097127000 下午

.....用这个公式

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

和这种格式在 A3

2013-05-09T18:42:46.097z

....用这个公式

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

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

=B2>B3

或使用 MIN 或 MAX 获得更小或更大的值

于 2013-05-09T19:35:07.460 回答
0

要添加到乔的答案...要让 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 比较它们应该很简单。

于 2013-05-09T20:02:12.080 回答