如何在未来几年内返回特定年份的值

时间:2016-10-28 06:37:51

标签: powerbi dax

我有两个表:一个花费了几个小时的事实表和一个日期维度表。

factTableHours:
| employeeName |小时| datekey |

dimDate :(从2000年到2030年)
| datekey |一年|月|一天|

我试图通过查看他过去一整年的工作时间来创建一个简单的估计员工将来要花多少小时的时间。
它类似于SAMEPERIODLASTYEAR功能,但我希望根据今天的日期确定特定的年份。
所以,如果我今天这样做,我希望它能够返回2015年注册的时间,
为了估计他将在未来几年,2016年,2017年,2018年花费多少小时...

3 个答案:

答案 0 :(得分:0)

尝试这样的事情 - 通过本声明,您可以获得去年的数据:

[PY Sales] = CALCULATE([Sales Amount]),DATEADD('Date'[Date],-1,YEAR)

BTW - 这是DAX时间模式的一个很好的参考:

http://www.daxpatterns.com/time-patterns/

答案 1 :(得分:0)

您可以创建一个计算去年的小时数。

使用TODAY()功能,您将获得今天的日期,因此我们需要减去一年。

HoursLastYear =
CALCULATE (
    SUM ( factTableHours[hours] ),
    FILTER (
        dimDate,
        dimDate[datekey]
            = DATE ( YEAR ( TODAY () ) - 1, MONTH ( TODAY () ), DAY ( TODAY () ) )
    )
)

如果有帮助,请告诉我。

答案 2 :(得分:0)

我在此页面的帮助下找到了解决方案:https://www.sqlbi.com/articles/week-based-time-intelligence-in-dax/
我只需要在我的时间维度中的另一列,即年份的日期数

hoursIn2015 :=
    IF (
    HASONEVALUE ( dimDate[year] ),
    CALCULATE (
        SUM ( factTableHours[hours] ),
        FILTER (
            ALL ( dimDate),
            dimDate[year] = 2015
                && CONTAINS(
                    VALUES ( dimDate[Day number in year] ),
                    dimDate[Day number in year],
                    dimDate[Day number in year] )
        )
    ),
    BLANK ()
)