2016-03-28 180 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要轉換的數據。

順便說一句,那麼你可能希望格式化單元格的日期/時間或任何其他。

希望有所幫助。