首先,我计算了迄今为止写给Premiu的年份:
YTD WP = TOTALYTD([Ttl WP],dim_Date[Date]) //works fine
然后为了计算上一年的值,我使用了SAMEPERIODLASTYEAR
函数:
PY WP = CALCULATE([YTD WP],
SAMEPERIODLASTYEAR(dim_Date[Date]), ALL(dim_Date)
)
结果应该是725.5亿美元。它将在哪里获得1.276亿美元?
因此,很遗憾,它没有给我正确的结果。
我已经有类似的报告并且功能正常,但是为什么在这种情况下它不起作用?
更新1:
使用DATESYTD来获取上一年的数字也会给我1.27亿
PY WP = CALCULATE([YTD WP],
DATEADD(DATESYTD(dim_Date[Date]),-1,YEAR)
)
更新2:
PY WP = CALCULATE(
[YTD WP], SAMEPERIODLASTYEAR(DATESYTD(dim_Date[Date])), ALL(dim_Date)
)
更新3:
将dim_Date表标记为“ Date”表。
PY WP = TOTALYTD([Ttl WP], SAMEPERIODLASTYEAR(dim_Date[Date]))
但是仍然给出错误的数字。
我使用过滤器功能来确定数字应该是:
PrevYear = CALCULATE([Ttl WP],FILTER(dim_Date,dim_Date[Date] >=VALUE("2018-01-01") && dim_Date[Date] <=VALUE("2018-03-31")))
我得到了正确的号码。
答案 0 :(得分:0)
您忘记将dim_Date
表标记为Date Table
。否则,时间智能功能将无法正常工作。
为此,请右键单击dim_Date
表,然后从上下文菜单中选择标记为日期表。然后,您可以选择Date
列作为键。以下代码段摘自Time Intelligence in Power Pivot文档,但适用于与DAX兼容的所有产品。
为了使用时间智能功能,您需要在数据模型中包含一个日期表。日期表必须包含一列,其中包含数据中每年每一天的每一行。该列被认为是“日期”列(尽管可以随意命名)。许多时间智能功能都需要date列,以便根据您选择作为报表字段的日期进行计算。例如,如果您有一个通过使用CLOSINGBALANCEQTR函数计算期末季度末余额的度量,为了使Power Pivot知道季度末的确切时间,它必须引用日期表中的日期列才能知道季度开始和结束的时间。
完成此操作后,尽管PY WP
度量可以简化为:
[PY WP] = TOTALYTD([Ttl WP], SAMEPERIODLASTYEAR(dim_Date[Date]))
有关更多信息,请参见Set and use date tables in Power BI;