excel 中的日期错误地转换为所需格式 (dd/mm/yy)

Date incorrectly converts into required format (dd/mm/yy) in excel

您好,我知道可以在这里找到很多类似的问题,但我仍然面临这个问题: 我有一个 table,其中有一列名为 Dates,其中一些值如下所示:

12/2/2021
11/2/2021
2021 年 10 月 2 日
9/2/2021
8/2/2021
2021 年 7 月 2 日
2021 年 6 月 2 日
5/2/2021
2021 年 4 月 2 日
2021 年 3 月 2 日
2/2/2021
2021 年 1 月 2 日
21 年 1 月 31 日
21 年 1 月 30 日

当我尝试通过选择类别作为日期或添加自定义类别作为 dd/mm/yy 来使用格式单元格转换它时,excel 将 dd/mm/YYYY 值视为 mm/dd/yy . 因此,例如,excel 不会将第一行视为 2 月 12 日,而是将其视为 12 月 2 日。

我也尝试通过转到 DATA 并将其设置为 DMY 将文本转换为列,但这并没有解决问题。

非常感谢任何帮助。

假设:

  • 所有日期最初都是 DMY
  • 您的 windows 区域设置短日期格式是 MDY

您需要转换为正确的日期

  • 如果值为文本,则为 DMY 格式,您可以提取部分并转换为日期
  • 如果是数值,说明转换不当,需要将月日部分取反

鉴于这些假设,以下公式应该有效。

我正在使用 Excel Office 365 Windows 版本中提供的 LETFILTERXML 函数。

如果您没有 Excel 的那个版本,您仍然可以使用公式来执行此操作,但会更复杂。或者你可以使用 VBA.

=IFERROR(DATE(YEAR(A1),DAY(A1),MONTH(A1)),
  LET(x,FILTERXML("<t><s>" & SUBSTITUTE(A1,"/","</s><s>")& "</s></t>","//s"),
         DATE(INDEX(x,3)+IF(INDEX(x,3)<30,2000),INDEX(x,2),INDEX(x,1))))

试试这个公式:

= DATE( YEAR(A1), DAY(A1), MONTH(A1) )

如果值有任何 space 个字符,试试这个:

= DATE( YEAR(TRIM(A1)), DAY(TRIM(A1)), MONTH(TRIM(A1)) )