0

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

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

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

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

非常感谢任何帮助。

4

2 回答 2

0

假设:

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

您将需要转换为正确的日期

  • 如果值是文本,那么它将是 DMY 格式,您可以提取部分并转换为日期
  • 如果值是数字,那么它已经转换不正确,您需要反转月份和日期部分

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

我正在使用Excel Office 365 Windows 版本中可用的LET和函数。FILTERXML

如果您没有该版本的 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))))

在此处输入图像描述

于 2021-03-20T21:04:53.190 回答
0

试试这个公式:

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

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

= DATE( YEAR(TRIM(A1)), DAY(TRIM(A1)), MONTH(TRIM(A1)) )
于 2021-03-20T21:29:46.193 回答