所以我知道这个问题已被问过几次了,我虔诚地看了不同的方法,但是我仍然不太明白为什么我的结果不正确。
案例:我有从2016年到2019年的销售数据(直到1919年2月18日)我有一个测量来向我展示年初至今,但是我正在寻找到目前为止的去年(18日)在这种特殊情况下)。
现在,我有这个:
Total Sales LYTD =
CALCULATE (
[Total Sales],
SAMEPERIODLASTYEAR (
FILTER (
VALUES ( Sales[Completed Date] ),
Sales[Completed Date] <= MAX ( Sales[Completed Date] )
)
)
)
对我来说逻辑是有道理的,但我确定我错过了一些东西,看来它正在抓住2018年的整体总数,而实际上我正在寻找01/01/2018 - > 2/18/2018
这将使用新的销售数据动态上传
我错过了什么?非常感谢!
不确定我理解你的表设置所以让我们看一下这个场景,希望它有所帮助。
假设您有两个表(Sales和Calendar)中的数据,并且日历和销售表之间存在1:*关系。然后我会写这样的措施:
SalesToDateThisYear =
calculate(
Sum(Sales[Sales]);
Calendar[Year] = Year(Today())
)
和
SalesToDateLastYear =
var dateLastYear = Today() - 365
return
calculate(
Sum(Sales[Sales]);
Calendar[Year] = Year(dateLatsYear);
Calendar[Date] < dateLastYear
)
两个过滤器参数与逻辑AND组合。所以只包括从去年的第一年到去年的今天的日期。
如果你想使用SamePeriod函数,你可能会写这样的东西
SPLY =
calculate =
Sum(Sales[Sales]);
SamePeriodLastYear(
Filter(
Values(Calendar[Date]);
Calendar[Date] >= Date(year(today()); 1; 1) && Calendar[Date] < Today()
)
)
)
SamePeriod函数采用一组日期(今年)并将它们转换为去年的日期。
干杯