我的数据是从应用程序中提取的,它有一个文本,看起来像excel中的日期/时间。如何真正将"3/24/2016 11:22:07 PM“(文本)转换为实时日期/时间转换?我试过格式化单元格,但不起作用。
发布于 2016-03-29 01:18:48
对于日期转换:
=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包含您想要转换的数据。
顺便说一句,您可能希望将单元格的格式设置为日期/时间或其他格式。
希望这能有所帮助。
发布于 2016-03-28 18:51:29
1)尝试使用DATEVALUE函数,看看是否适合您。
您将需要使用以下函数的组合:
DATE
现在,在我看来,最简单的方法是使用多个帮助器列来构建所有步骤。每一步一列。我这么说的原因是,最终的公式只涉及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的文本转列功能,该功能位于大约一半的数据带状图标上。
4)当然,也有一种方法可以通过VBA对其进行编码。
https://stackoverflow.com/questions/36259951
复制相似问题