将长date文本转换为date/时间

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

Cell – J8有以下信息2月4日00:08:06 EST 2014
Cell – L8有以下信息Tue Feb 4 00:14:54 EST 2014

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

这些单元格被格式化为“文本”,并且由于它们具有date,date,时间和“EST”格式化具有长date的单元格,所以它不起作用。

我这样做来parsing每个单元格的date/时间值:

 =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数字。

使用一个数组(列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并且=Z8-Y8可能适合(对于“时间”是!)

不适合时区的差异。

如果L8始终晚于J8,并且格式总是与显示的一样(用三个字母表示时区,并且间距如上,则请尝试:

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

对此方法的进一步警告:您的本机默认date(在Windows控制面板中,而不是在Excel本身)需要是在您的文本转储MDY。

编辑 :下面的(更长的)版本应该工作,不pipe你的本地date格式是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))