2016-03-28 165 views
0

我的数据是从应用程序中提取的,它的文本看起来像是excel中的日期/时间。我如何将“2016/3/24 11:22:07 PM”(在文本中)转换为真正的日期/时间转换?我试过格式化单元格,但它不起作用。在excel中将文本日期/时间转换为实际日期时间

+2

这是您发布的与日期 - 时间转换和/或算术有关的第四个稍有不同的问题。您没有标记为您对之前问题的答复。我认为你需要退后一步,找出你想要的,并尝试一两个解决方案。您需要了解Excel如何存储日期和时间,以及如何执行一些基本的文本操作。请阅读HELP页面以了解[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask);还有[如何提供示例](http://stackoverflow.com/help/mcve) –

回答

0

1)尝试使用DATEVALUE函数,看看是否适合你。

2)更可靠的方法,因为datevalue并不总是工作,所以手动剥离文本并将其插入到excel日期值中。你将要使用的以下功能组合:

  • DATE
  • TIME
  • IF
  • 寻找
  • MID
  • LEFT
  • RIGHT
  • LEN

现在我认为最简单的方法是使用多个帮助列来构建所有步骤。每一步一列。当你得到你的最终答案时,你可以替换或复制粘贴你的公式从助手列到最终公式,直到你留下一个变量。我之所以这么说,是因为只有一个变量的最终公式变得相当冗长/难看,而且如果你犯了一个错字,忘记了一个括号或出了什么问题,就很难排除故障。当我采用这种方法时,我使用了全部14列(包括最终公式)。当我收拾了这一切到1个公式是导致此:

DATE(RIGHT(LEFT(A3,FIND(" ",A3)-1),4),LEFT(LEFT(A3,FIND(" ",A3)-1),FIND("/",LEFT(A3,FIND(" ",A3)-1))-1),MID(LEFT(A3,FIND(" ",A3)-1),FIND("/",LEFT(A3,FIND(" ",A3)-1))+1,FIND("/",LEFT(A3,FIND(" ",A3)-1),FIND("/",LEFT(A3,FIND(" ",A3)-1))+1)-FIND("/",LEFT(A3,FIND(" ",A3)-1))-1))+TIME(LEFT(RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))-1)+IF(AND(LEFT(RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))-1)<12,RIGHT(RIGHT(A3,LEN(A3)-FIND(" ",A3)),2)="AM"),0,12),MID(RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))+1,FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))+1)-FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))-1),MID(RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)),FIND(":",RIGHT(A3,LEN(A3)-FIND(" ",A3)))+1)+1,2)) 

值得注意的是设置使用电池A3作为一个与时间的文字需要的格式。

3)您还应该能够使用excel的文本功能位于数据功能区大约一半的位置。

4)当然,还有一种方法可以通过VBA将其编码为选项。

0

对于日期的转换:

=DATEVALUE(TEXT(A1,"MM/DD/YYYY")) 

对于时间的转换:

=DATEVALUE(TEXT(A1,"MM/DD/YYYY")) 

对于日期时间转换:

=DATEVALUE(TEXT(A1,"MM/DD/YYYY"))+TIMEVALUE(TEXT(A1,"HH:MM:SS")) 

在A1要转换的数据。

顺便说一句,那么你可能希望格式化单元格的日期/时间或任何其他。

希望有所帮助。

相关问题