[英]How to make a measurement with a rolling/moving conditional in DAX Excel PowerPivot or Power BI
我有这张桌子:
时期 | 公司 | 部门 | 净利 | 资产 |
---|---|---|---|---|
2018 年 12 月 31 日 | AA | 1 | 10 | 100 |
2018 年 12 月 31 日 | BB | 1 | 20 | 100 |
2018 年 12 月 31 日 | 抄送 | 2 | 30 | 100 |
2018 年 12 月 31 日 | DD | 2 | 40 | 100 |
2019 年 12 月 31 日 | AA | 1 | 15 | 100 |
2019 年 12 月 31 日 | BB | 1 | 25 | 100 |
2019 年 12 月 31 日 | 抄送 | 2 | 35 | 100 |
2019 年 12 月 31 日 | DD | 2 | 45 | 100 |
2020 年 12 月 31 日 | AA | 1 | 18 | 100 |
2020 年 12 月 31 日 | BB | 1 | null | 100 |
2020 年 12 月 31 日 | 抄送 | 2 | 38 | 100 |
2020 年 12 月 31 日 | DD | 2 | 48 | null |
我想创建一个度量来计算部门资产回报率,即t 年的 SUM(Net Income)/SUM(Assets),以仅包括在t年和 t 年拥有完整的净收入和资产集的公司- 1 .
因此,我想创建一个 pivot 表,如下所示:
资产收益率 | 部门 | |
---|---|---|
时期 | 1 | 2 |
2018 年 12 月 31 日 | null | null |
2019 年 12 月 31 日 | 20 % | 40% |
2020 年 12 月 31 日 | 18 % | 38% |
我如何在 DAX 中做到这一点?
一种可能的解决方案是准备一个包含上一年集的表变量,用作当前年份计算的过滤器。
ROA =
VAR CurrentPeriod =
SELECTEDVALUE ( T[Period] )
VAR PreviousPeriod =
DATEADD (
T[Period],
-1,
YEAR
)
VAR Result =
IF (
NOT ISBLANK( CurrentPeriod ),
VAR PreviousYearSet =
CALCULATETABLE (
SUMMARIZE (
T,
T[Sector],
T[Firm]
),
NOT ISBLANK ( T[Assets] ),
NOT ISBLANK ( T[Net Income] ),
T[Period] = PreviousPeriod
)
RETURN
CALCULATE (
DIVIDE (
SUM ( T[Net Income] ),
SUM ( T[Assets] )
),
NOT ISBLANK ( T[Assets] ),
NOT ISBLANK ( T[Net Income] ),
PreviousYearSet
)
)
RETURN
Result
应用于样本数据的这种度量可以在矩阵视觉中使用,以给出预期的结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.