1

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

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

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

正如 Chris Webb 在他的博客中所写的那样,DATEADD 是不可靠的,因为只要在 EventDate 列中找不到结果日期,它就会返回空白。

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

=[EventDate] + 10 * 31

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

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

4

2 回答 2

2

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

=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 雅各布

于 2013-04-08T01:57:55.180 回答
2

Another way to add time to a date using DAX is using EDATE(), this function add months and it will return the right day of the month. For example:

Foo = EDATE(Dates[EventDate], 10)
于 2017-12-05T20:06:27.013 回答