我有一个包含数千行的列。该列意为日期,格式为dd / mm / yyyy
但是,当我尝试根据日期做公式时,显然有些不对劲。
例如,如果您尝试在日期上应用自动过滤器,则其中一些会按可扩展框分组为一年,而其他一些则显示为自己的项目。
对于每条记录,我尝试了一个公式来解析它。=DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2))
这没有帮助。
我还选择了该列并将其从一般格式转换为日期格式
我真的不知道如何更清楚地提出这个问题。我可以告诉你,当我运行=year(right(A1,4))
格式的日期为2013年1月11日时,我得到1903
而不是2013
。当我运行=date(right(A1,4),mid(A1,3,2),left(A1,2))
时,公式会返回2/10/3192
答案 0 :(得分:3)
为什么你的公式不能正常工作,这很简单。如果您正在使用这样的内容:RIGHT(A2,4)
,则A2
的值将转换为41579(2013年1月11日)(Excel将所有日期存储为整数,所有时间都存储为小数部分。您可以阅读更多内容here)。下一个公式应该运作良好:
=DATE(RIGHT(TEXT(A2,"dd/mm/yyyy"),4),MID(TEXT(A2,"dd/mm/yyyy"),4,2),LEFT(TEXT(A2,"dd/mm/yyyy"),2))
顺便说一句,如果您想获得正确的日期格式,可以在某个空列中添加公式(但在此列的设置日期格式之前):
=A2*1
然后将其拖下来。然后复制此临时列中的值并使用colunm A
中的“粘贴特殊 - >值”粘贴它们(其中也应该是日期格式)
或者您可以使用这个简单的宏:
Sub test()
With Range("A2:A100")
.NumberFormat = "dd/mm/yyyy"
.Value = .Value
End With
End Sub