簡體   English   中英

將文本日期/時間轉換為 excel 中的實際日期時間

[英]Convert text date/time to a real date time in excel

我的數據是從應用程序中提取的,它有一個看起來像 excel 中的日期/時間的文本。我如何實際將“3/24/2016 11:22:07 PM”(文本)轉換為實際日期/時間轉換? 我試過格式化單元格,但它不起作用。

對於日期轉換:

=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具有您希望轉換的數據。

順便說一下,您可能希望將單元格格式化為日期/時間或其他任何內容。

希望有所幫助。

=DATEVALUE(A1)+TIMEVALUE(A1)似乎也有效,因為每個 function 只返回與其在字符串中識別的內容對應的值。 也就是說, DATEVALUE()忽略時間部分,而TIMEVALUE()忽略日期部分。

1)嘗試使用DATEVALUE函數,看看它是否適合您。

2)一種更可靠的方法,因為日期值並不總是有效的是手動剝離文本並將其插入並超出日期值。 您將要使用以下功能的組合:

  • 日期
  • 時間
  • 如果
  • 剩下
  • 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編寫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM