如何强制Excel在列中而不是当前年份自动填充上一年?

Jos*_*hDM 10 excel date

上下文:我将上一年的数据输入Excel.

每次我在日期栏中输入日期(9月16日的"9/16"),Excel会自动将其格式化为"9/16/12",其中12是2012年,即当前年份.

我正在输入去年2012年的数据.我不想输入2011年的"11".我希望Excel能像2012年那样自动填充它,就像12月31日那样.

最简单的解决方法是在Windows中设置时钟回到2011年的任何时间,但是,往往与想要设置我回网络渣土和抱怨我的网络密码是过时的,等等.

我更喜欢将日期驻留在一个列中,因此对于我来说,选择日期/月/年的备用列不是一个选项.

有人会认为这是一个简单的解决方案,但是几个小时的搜索和我的Google-fu让我失望了.

Ste*_*bob 9

快速解决方法是只输入9/16并让Excel将其更改为9/16/12.然后,当您完成输入日期后,在新列中输入公式=A1-365,并将公式一直复制下来,假设列A包含您输入的日期.

关注这一点:2012年是闰年,因此对于您输入的2月28日之后的任何日期,您的公式将需要=A1-365.25或者您的日期将被关闭一天.它不必是365.25,只是大于365且小于366的东西.

这是有效的,因为无论单元格中的日期格式是什么,Excel都会将实际日期存储为自1900年1月0日以来经过的天数.(是的,1月0日不是真实日期,但Excel认为是.)


JMa*_*Max 5

您找到的内容是正确的,您无法更改有关日期的默认Excel参数.除了更改系统日期之外,您还可以使用工作表事件公式:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
If IsDate(Target) Then
    Application.EnableEvents = False
    Target.Value = DateSerial(2011, Month(Target), Day(Target))
    Application.EnableEvents = True
End If
End Sub
Run Code Online (Sandbox Code Playgroud)