如何在 DAX Excel PowerPivot 或 Power BI 中使用 rolling/moving 条件进行测量
How to make a measurement with a rolling/moving conditional in DAX Excel PowerPivot or Power BI
我有这个table:
Period
Firm
Sector
Net Income
Assets
31 Dec 2018
AA
1
10
100
31 Dec 2018
BB
1
20
100
31 Dec 2018
CC
2
30
100
31 Dec 2018
DD
2
40
100
31 Dec 2019
AA
1
15
100
31 Dec 2019
BB
1
25
100
31 Dec 2019
CC
2
35
100
31 Dec 2019
DD
2
45
100
31 Dec 2020
AA
1
18
100
31 Dec 2020
BB
1
null
100
31 Dec 2020
CC
2
38
100
31 Dec 2020
DD
2
48
null
我想创建一个度量来计算资产的部门 Return,即 t 年的 SUM(Net Income)/SUM(Assets),以包括只有在 第 t 年和 第 t-1 年 拥有 一套完整的 净收入和资产的公司.
因此,我想像这样创建一个枢轴 table:
ROA
Sector
Period
1
2
31 Dec 2018
null
null
31 Dec 2019
20 %
40%
31 Dec 2020
18 %
38%
我如何在 DAX 中做到这一点?
一个可能的解决方案是准备一个 table 变量,其中包含上一年的设置,用作当前年份计算的过滤器。
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
应用于示例数据的此度量可用于矩阵视觉对象以提供预期结果
我有这个table:
Period | Firm | Sector | Net Income | Assets |
---|---|---|---|---|
31 Dec 2018 | AA | 1 | 10 | 100 |
31 Dec 2018 | BB | 1 | 20 | 100 |
31 Dec 2018 | CC | 2 | 30 | 100 |
31 Dec 2018 | DD | 2 | 40 | 100 |
31 Dec 2019 | AA | 1 | 15 | 100 |
31 Dec 2019 | BB | 1 | 25 | 100 |
31 Dec 2019 | CC | 2 | 35 | 100 |
31 Dec 2019 | DD | 2 | 45 | 100 |
31 Dec 2020 | AA | 1 | 18 | 100 |
31 Dec 2020 | BB | 1 | null | 100 |
31 Dec 2020 | CC | 2 | 38 | 100 |
31 Dec 2020 | DD | 2 | 48 | null |
我想创建一个度量来计算资产的部门 Return,即 t 年的 SUM(Net Income)/SUM(Assets),以包括只有在 第 t 年和 第 t-1 年 拥有 一套完整的 净收入和资产的公司.
因此,我想像这样创建一个枢轴 table:
ROA | Sector | |
---|---|---|
Period | 1 | 2 |
31 Dec 2018 | null | null |
31 Dec 2019 | 20 % | 40% |
31 Dec 2020 | 18 % | 38% |
我如何在 DAX 中做到这一点?
一个可能的解决方案是准备一个 table 变量,其中包含上一年的设置,用作当前年份计算的过滤器。
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
应用于示例数据的此度量可用于矩阵视觉对象以提供预期结果