Powerbi 为什么SAMEPERIODLASTYEAR函数不能生成正确的结果
首先,我计算了本年迄今为止的书面溢价:Powerbi 为什么SAMEPERIODLASTYEAR函数不能生成正确的结果,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,首先,我计算了本年迄今为止的书面溢价: 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亿美元。它从哪里得到12760万美元 所以,不幸的
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亿美元。它从哪里得到12760万美元
所以,不幸的是,它没有给我正确的结果
我已经有了类似的报告,功能运行良好,但为什么在这种情况下不起作用呢
更新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_日期表标记为“日期”表
但仍然给出了错误的数字
我使用了过滤功能来确定数字应该是什么:
PrevYear = CALCULATE([Ttl WP],FILTER(dim_Date,dim_Date[Date] >=VALUE("2018-01-01") && dim_Date[Date] <=VALUE("2018-03-31")))
PrevYear=CALCULATE([Ttl WP],FILTER(dim_Date,dim_Date[Date]>=VALUE(“2018-01-01”)&&dim_Date[Date]您忘记将dim_Date
表标记为日期表。否则,时间智能功能无法正常工作
为此,右键单击dim_Date
表,并从关联菜单中选择标记为日期表。然后可以选择Date
列作为键。以下代码片段取自文档,但适用于与DAX兼容的所有产品
为了使用时间智能功能,您需要在数据模型中包含一个日期表。日期表必须包含一个列,该列包含数据中每年每一天的一行。此列被视为日期列(尽管可以随意命名)。许多时间智能功能需要“日期”列,以便根据您在报告中选择为字段的日期进行计算。例如,如果您有一个使用CLOSINGBALANCEQTR功能计算期末余额的度量,则为了让Power Pivot知道季度末的实际时间,它必须引用日期表中的日期列,以了解季度的开始和结束时间
完成后,您的计算工作正常-尽管您的PY WP
度量可以简化为:
[PY WP] = TOTALYTD([Ttl WP], SAMEPERIODLASTYEAR(dim_Date[Date]))
有关更多信息,请参见;这是一个复杂的交互多日期过滤器。如果在您的PY WP
度量中使用DATESYTD
包装dim_date[date]
是否有效?刚刚尝试了这个,但仍然给出了相同的错误数字PY WP=CALCULATE([YTD WP],DATEADD(sytd)](dim_Date[Date]),-1,YEAR))
我的意思是PY WP=CALCULATE([YTD WP]),SAMEPERIODLASTYEAR(DATESYTD(dim_Date[Date]),ALL(dim_Date))
,但我甚至不记得你是否可以将表达式传递给该函数。是的。谢谢。我能够运行它。但结果仍然相同。127 MWhy你传递ALL(dim_Date)
到计算
?您的意思是全部(事实溢价)
?谢谢。我现在正确地标记了表和列。但由于某些原因,相同的值不正确。我编辑了问题。更新3
[PY WP] = TOTALYTD([Ttl WP], SAMEPERIODLASTYEAR(dim_Date[Date]))