2012-05-30 127 views
1

如何在PowerPivot计算列的DAX公式中可靠地添加10个月到日期?DATEADD和缺失日期

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

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

正如克里斯·韦伯在他的博客中写道:DATEADD is unreliable,因为它只要结果日期未在EVENTDATE列中找到返回空白。

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

=[EventDate] + 10 * 31 

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

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

回答

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

1

另一种方式来增加时间使用DAX使用EDATE()一个日期,此函数添加个月,它会返回一个月的天权。例如:

Foo = EDATE(Dates[EventDate], 10)