![在 Excel 中將文字轉換為日期](https://rvso.com/image/1641932/%E5%9C%A8%20Excel%20%E4%B8%AD%E5%B0%87%E6%96%87%E5%AD%97%E8%BD%89%E6%8F%9B%E7%82%BA%E6%97%A5%E6%9C%9F.png)
我需要您幫助將文字轉換為“2021 年 8 月 1 日至 21 月 15 日期間的價格”,截止日期為 2021 年 1 月 15 日。
我正在使用該公式=DATE(RIGHT(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))&"20",4),MID(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))&"20",4,2),LEFT(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))&"20",2))
,但我得到的輸出是 15/01/2120 而不是 15/01/2021。
有人可以幫忙解決上述問題嗎?
答案1
因為您的字串以 8 個字元的日期結尾,後面跟著一個空格,所以我們可以使用:
=LEFT(RIGHT(TRIM(Edited!A2),8),6) & RIGHT(RIGHT(TRIM(Edited!A2),8),2)+2000
筆記:
這會隔離日期並將 2 位數年份轉換為 4 位數年份
如果您使用的是,可以將其縮短Excel 365。
結果是一個字串,而不是真正的 Excel 日期。
編輯#1:
將月份放在第一位:
=MID(RIGHT(TRIM(Edited!A2),8),4,3) & LEFT(RIGHT(TRIM(Edited!A2),8),3) & RIGHT(RIGHT(TRIM(Edited!A2),8),2)+2000
編輯#2:
如果你使用Excel 365,然後您可以使用以下命令建立一個真正的 Excel 日期:
=LET(d,RIGHT(TRIM(Edited!A2),8) ,DATE(RIGHT(d,2)+2000,MID(d,4,2),LEFT(d,2)))
答案2
這個簡單的方法對你有用嗎?
=DATEVALUE(TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100)))
正如您所說,
=TRIM(RIGHT(SUBSTITUTE(TRIM(Edited!A2)," ",REPT(" ",100)),100))
獲取句子中的最後一個字串,
然後=DATEVALUE()
將該字串轉換為日期時間數據,結果取決於您的計算機區域設定。
此外,您應該將列格式設為日期時間並輕鬆自訂它(mm/dd/yyyy
或dd/mm/yyyy
等)。
如果你知道最後的日期字串的長度並且它是固定長度的,那就更簡單了:
=DATEVALUE(RIGHT(TRIM(Edited!A2),8))