Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 为什么SAMEPERIODLASTYEAR函数不能生成正确的结果_Powerbi_Dax_Powerbi Desktop - Fatal编程技术网

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]))