我的数据是从应用程序中提取的,它的文本看起来像excel中的日期/时间。我如何实际转换" 2016年3月24日11:22:07" (在文本中)到真实的日期/时间转换?我尝试过格式化单元格,但它不起作用。
答案 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并不总是有效的是手动剥离文本并将其插入并擅长日期值。您将要使用以下功能的组合:
现在我认为最简单的方法是使用多个帮助列来构建所有步骤。每步一列。当您得到最终答案时,您可以将辅助列中的公式替换或复制粘贴到最终公式中,直到您留下一个变量。我说这个的原因是,只有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作为选项进行编码。