在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