在 Excel 中将文本转换为日期

在 Excel 中将文本转换为日期

我需要您的帮助将文本“2021 年 1 月 8 日至 2021 年 1 月 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/yyyydd/mm/yyyy等等)。

如果知道最后的日期字符串的长度,并且它是固定长度,那么会更简单: =DATEVALUE(RIGHT(TRIM(Edited!A2),8))

相关内容