【问题标题】:DATEADD and missing datesDATEADD 和缺少的日期
【发布时间】:2012-05-30 15:08:29
【问题描述】:

如何可靠地将 10 个月添加到 PowerPivot 计算列的 DAX 公式中的日期?

我的第一次尝试仅适用于 EventDate 列中已存在的日期。

=DATEADD(Dates[EventDate], 10, month)

正如 Chris Webb 在他的博客 DATEADD is unreliable 中所写,只要在 EventDate 列中找不到结果日期,它就会返回空白。

我的第二次尝试总是返回数据,但月份的日期不正确。

=[EventDate] + 10 * 31

注意:EventDate 中的所有日期都是当月的第一天。我正在使用 Excel 2010 的 PowerPivot。该公式适用于日期维度中的财政年度层次结构。

有没有更好的方法在 DAX 中添加月份?

【问题讨论】:

    标签: excel dateadd powerpivot dax


    【解决方案1】:

    这是一个旧的,但可能仍然有用......

    =IF(
        DAY([Eventdate])>DAY(EOMONTH([Eventdate],10)),
                 DATE(year(eomonth([Eventdate],10)),month(eomonth([Eventdate],10)),day(EOMONTH([Eventdate],10))),
                 DATE(year(eomonth([Eventdate],10)),month(eomonth([Eventdate],10)),day([Eventdate]))
        )
    

    这假设“合作伙伴”10 个月后的天数较少,它将默认为该月的最后一天。

    HTH 雅各布

    【讨论】:

      【解决方案2】:

      使用 DAX 为日期添加时间的另一种方法是使用 EDATE(),此函数添加月份,它将返回正确的月份日期。例如:

      Foo = EDATE(Dates[EventDate], 10)
      

      【讨论】:

        猜你喜欢
        • 2020-06-05
        • 2021-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-03
        • 2021-08-29
        • 2021-09-10
        • 2017-07-04
        相关资源
        最近更新 更多