DATEADD和缺less的date

如何在PowerPivot计算列的DAX公式中可靠地添加10个月的date?

我的第一次尝试只适用于已经存在于EventDate列中的date。

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

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

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

 =[EventDate] + 10 * 31 

备注:EventDate中的所有date都在本月的第一天。 我正在使用PowerPivot for Excel 2010.该公式适用于date维度中的财务年度层次结构。

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

这是一个旧的,但仍然可以使用……

 =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个月的天数较less,则将默认为该月的最后一天。

雅各布

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

 Foo = EDATE(Dates[EventDate], 10)