将字符串日期转换为数字日期

将字符串日期转换为数字日期

我有一个用字符串表示的日期,即 2021 年 1 月 28 日,我想用 mm/dd/yyyy 日期来表示它,因此从“2021 年 1 月 28 日“ 到 ”2021 年 1 月 28 日“。

我的方法是使用 LEFT、MID 和 RIGHT 公式将字符串标记为“28”、“January”、“2021”。

现在我必须使用 DATE 命令:虽然日期和年份可以毫无问题地识别,因为它们已经用数字表示了,但我无法将“一月”翻译为“1”,即使在谷歌上搜索解决方案,因为似乎没有解决方案可以在使用 Excel for Office 365 的情况下起作用。

答案1

我怀疑您的月份不是“英文”,因此您需要将月份翻译成月份数字,然后在日期函数中使用它。

由于您有 O365,因此您可以使用它:

=LET(x,FILTERXML("<t><s>" &SUBSTITUTE(SUBSTITUTE(A1,",","")," ","</s><s>") & "</s></t>","//s"),y,DATE(INDEX(x,3),MATCH(INDEX(x,1),{"January";"February";"March";"April";"May";"June";"July";"August";"September";"October";"November";"December"},0),INDEX(x,2)),y)

FILTERXML将日期字符串分解为三个部分。 MATCH用于将月份转换为月份数字。

一旦获得结果(今天它将是一个五位数字44224),您就可以使用单元格格式对话框按照您希望的格式进行格式化。

答案2

您需要创建一个真实的日期然后对其进行格式化。

数据在A1,在另一个单元格中输入:

=DATEVALUE(SUBSTITUTE(MID(A1,FIND(" ",A1)+1,2),",","") & "-" & LEFT(A1,FIND(" ",A1)-1) & "-" & RIGHT(A1,4))

然后格式化就可以了:

在此处输入图片描述

这是有效的,因为28-January-2021是一个可以接受的字符串DATEVALUE()

编辑#1

事实上,根据您的区域设置,这也可能有效:

=DATEVALUE(A1)

答案3

您只需单击日期所在的单元格,然后将其格式化为“时间/日期单元格”。Excel 会自动将其检测为日期并进行正确格式化。

相关内容