DATEADD和缺少日期

时间:2012-05-30 15:08:29

标签: excel dateadd powerpivot dax

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

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

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

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

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

=[EventDate] + 10 * 31

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

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

使用DAX为日期添加时间的另一种方法是使用EDATE(),此功能会添加月份,并且会返回该月的正确日期。例如:

@types