将文本日期/时间转换为excel中的实际日期时间

时间:2016-03-28 09:59:59

标签: excel date time data-conversion

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

2 个答案:

答案 0 :(得分:6)

日期转换:

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

进行时间转换:

=TIMEVALUE(TEXT(A1,"HH:MM:SS"))

对于日期时间转换:

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

A1包含您要转换的数据。

顺便说一下,您可能希望将单元格格式化为日期/时间或其他。

希望有所帮助。

答案 1 :(得分:0)

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

2)更可靠的方法,因为datevalue并不总是有效的是手动剥离文本并将其插入并擅长日期值。您将要使用以下功能的组合:

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

现在我认为最简单的方法是使用多个帮助列来构建所有步骤。每步一列。当您得到最终答案时,您可以将辅助列中的公式替换或复制粘贴到最终公式中,直到您留下一个变量。我说这个的原因是,只有1个变量的最终公式变得相当冗长/丑陋,如果你输错字,忘记支架或出错的话,很难解决问题。当我采用这种方法时,我总共使用了14列(包括最终公式)。当我把它全部打包成一个公式时,它产生了这个:

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的文本用于位于DATA功能区上的列函数大约一半。

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