我需要您的帮助将文本“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/yyyy
或dd/mm/yyyy
等等)。
如果知道最后的日期字符串的长度,并且它是固定长度,那么会更简单:
=DATEVALUE(RIGHT(TRIM(Edited!A2),8))