将长日期文本转换为日期/时间

时间:2014-02-08 00:37:03

标签: excel datetime excel-formula excel-2010 vlookup

我有一个Excel(2010)电子表格,它基本上是一个文本转储。

Cell - J8具有以下信息 Tue Feb 4 00:08:06 EST 2014
Cell - L8具有以下信息 Tue Feb 4 00:14:54 EST 2014

我需要计算L8和J8之间的时间差。

这些单元格被格式化为“文本”,因为它们具有日期,日期,时间和“EST”格式化具有长日期的单元格,所以它不起作用。

3 个答案:

答案 0 :(得分:1)

使用一个数组(月MMM和1-12的列)并且肯定可以改进,但是要让你度过难关:

=DATE(RIGHT(J8,4),VLOOKUP(MID(J8,5,3),array,2,0),MID(J8,9,2))+VALUE(MID(J8,11,9))  

在说Y8并且在AA8中用=Z8-Y8复制到Z8可能适合(对于'时间'存在!)

不适合时区的差异。

答案 1 :(得分:1)

我这样做是为了解析每个单元格的日期/时间值:

=DATE(RIGHT(J8,4),VLOOKUP(MID(J8,5,3),$P$2:$Q$13,2,FALSE),MID(J8,9,LEN(J8)-26))
+TIME(MID(J8,11+LEN(J8)-27,2),MID(J8,14+LEN(J8)-27,2),MID(J8,17+LEN(J8)-27,2))

然后你可以在两个单元格的值之间进行简单的减法。

我唯一需要添加到电子表格的是一个查找表,用于将月份名称映射到月份值。因此,公式中的VLOOKUP

我还需要计算超过日期值的偏移位置,因为它看起来可能有一个或两个数字 - 因此公式中有神奇的2627数字。

答案 2 :(得分:1)

如果L8总是晚于J8,并且格式总是如您所示(时区有三个字母,上面的间距,则尝试:

=(MID(L8,5,6)&“,”& RIGHT(L8,4)&“”& MID(L8,11,9)) - (MID(J8,5,6) )&“,”& RIGHT(J8,4)&“”& MID(J8,11,9))

使用此方法的另一个警告:您的本机默认日期(在Windows控制面板中,而不是在Excel本身中)需要与文本转储中一样是MDY。

编辑:无论您的原生日期格式是MDY还是DMY,以下(更长)版本都应该有效:

=(MID(L8,9,2)& MID(L8,4,4)&RIGHT(L8,5)&" "&MID(L8,11,9))-(MID(J8,9,2)& MID(J8,4,4)&RIGHT(J8,5)&" "&MID(J8,11,9))