在Excel中格式化date

我有一个有成千上万的行的列。 该列意味着date,格式为dd / mm / yyyy

但是,当我尝试根据date来做配方时,显然有些不对劲。

例如,如果您尝试在date上应用自动筛选,则其中一些会使用可扩展框分组为一年,而另一些显示为自己的项目。

对于每个logging,我尝试了一个公式来parsing它。 =DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2))

这没有帮助。

我也select了这个专栏,把它从普通的格式转换成date格式

我真的不知道如何更清楚地问这个问题。 我可以告诉你,当我运行=year(right(A1,4))时,格式为1/11/2013的date是1903而不是2013 。 当我运行=date(right(A1,4),mid(A1,3,2),left(A1,2))公式返回2/10/3192

这很简单,为什么你的公式不正确的工作。 当你使用这样的东西时: RIGHT(A2,4) ,从A2的值转换为41579 RIGHT(A2,4) (Excel将所有的date存储为整数,所有的时间存储为十进制小数,你可以在这里阅读更多)。 下一个公式应该很好:

 =DATE(RIGHT(TEXT(A2,"dd/mm/yyyy"),4),MID(TEXT(A2,"dd/mm/yyyy"),4,2),LEFT(TEXT(A2,"dd/mm/yyyy"),2)) 

顺便说一句,如果你想得到正确的date格式,你可以在一些空列添加公式(但在此列设置date格式之前):

 =A2*1 

并把它拖下来。 然后复制这个temp列中的值,并使用colunm A “Paste special-> Values”(其中应该是date格式)粘贴它们。

在这里输入图像说明

或者你可以使用这个简单的macros:

 Sub test() With Range("A2:A100") .NumberFormat = "dd/mm/yyyy" .Value = .Value End With End Sub