【问题标题】:Calculate a date 12 months ago from a specific date从特定日期计算 12 个月前的日期
【发布时间】:2017-01-16 17:12:16
【问题描述】:

我正在尝试从特定输入日期计算 12 个月前的日期。

例子:

在单元格A5 中,用户输入日期(dd/mm/yyyy),在单元格A7 中,我有以下公式:

=MONTH(A5)-12

但是这个公式不起作用,我不知道如何获得 12 个月前的日期。在 cmets 上发布任何问题。

【问题讨论】:

    标签: excel date excel-formula


    【解决方案1】:

    你可以这样做:

    =DATE(YEAR(A5),MONTH(A5)-12,DAY(A5))
    

    或者因为 12 个月就是一年:

    =DATE(YEAR(A5)-1,MONTH(A5),DAY(A5))
    

    【讨论】:

    • 我希望他们也有用于原生 Excel 的 DateDiff
    • @Kyle 他们这样做是一个隐藏功能,但 OP 不是试图找到差异,而是实际日期。见:support.office.com/en-us/article/…
    • @ScottCraner 显然!我的意思是 DateAdd 实际上,但有趣的是知道 excel 具有隐藏功能。
    【解决方案2】:

    根据this Microsoft documentation,最好的方法是使用EDATE function

    =EDATE(A5, -12)
    

    (然后将单元格格式化为日期)

    请注意,这种方法与Scott recommended 之间存在一些差异。特别是,如果您的原始值是闰日(2 月 29 日),那么减去 12 个月将落入没有闰日的年份。 Scott 的方法将在 3 月 1 日返回,EDATE 函数将在 2 月 28 日到达。

    在接近长月的末尾添加/减去任意月数时,可以看到同样的情况。例如,使用 EDATE 方法将一个月添加到 3 月 31 日应该得到 4 月 30 日,但在向日期部分添加值时会得到 5 月 1 日。

    【讨论】:

    • 而且更短。
    • 非常感谢,这是获得我想要的日期的更好方法。
    • 只是出于兴趣,VBA DATEADD 函数还为 Matt 的示例提供了 2 月 28 日,因此它是一致的。不幸的是,它不能作为工作表函数使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 2015-01-10
    相关资源
    最近更新 更多