如果您能帮助我创建一个 DAX 指标,该指标可以计算多个投资组合相对于参考投资组合(这是通过切片器评估和选择的投资组合之一)的安全权重差异。最终用户将能够选择他们想要的投资组合作为参考投资组合。
我有一个名为“Holdings”的数据(事实)表,其中包含以下字段:日期、投资组合名称、证券代码和投资组合权重。
有三个查找 (DIM) 表链接到“Holdings”表,但我相信对于此特定场景我只需要日历表:日历表、证券和投资组合名称。
如果我在切片器中选择“投资组合 A”,我希望看到每种证券的以下内容:
持股表:
DATE PORTFOLIO SECURITY WEIGHT
1/31/24 Portfolio A IBM 0.25
1/31/24 Portfolio A APPL 0.25
1/31/24 Portfolio A MSFT 0.25
1/31/24 Portfolio A C 0.25
1/31/24 Portfolio B IBM 0.15
1/31/24 Portfolio B APPL 0.35
1/31/24 Portfolio B MSFT 0.25
1/31/24 Portfolio B C 0.25
1/31/24 Portfolio C IBM 0.25
1/31/24 Portfolio C APPL 0.15
1/31/24 Portfolio C MSFT 0.25
1/31/24 Portfolio C C 0.25
1/31/24 Portfolio D IBM -
1/31/24 Portfolio D APPL 0.25
1/31/24 Portfolio D MSFT 0.50
1/31/24 Portfolio D C 0.25
1/31/24 Portfolio E IBM 0.25
1/31/24 Portfolio E APPL 0.35
1/31/24 Portfolio E MSFT 0.15
1/31/24 Portfolio E C 0.25
总结持有重量的表格:
PORTFOLIO IBM APPL MSFT C
Portfolio A 0.25 0.25 0.25 0.25
Portfolio B 0.15 0.35 0.25 0.25
Portfolio C 0.25 0.15 0.25 0.25
Portfolio D - 0.25 0.50 0.25
Portfolio E 0.25 0.35 0.15 0.25
我想在 Power BI 中显示为矩阵表:
投资组合和参考投资组合之间的差异:
PORTFOLIO IBM APPL MSFT C
Portfolio A - - - -
Portfolio B (0.10) 0.10 - -
Portfolio C - (0.10) - -
Portfolio D (0.25) - 0.25 -
Portfolio E - 0.10 (0.10) -
尝试这个措施:
Measure =
VAR thisPortfolio = SELECTEDVALUE(Holdings[PORTFOLIO])
VAR thisSecurity = SELECTEDVALUE(Holdings[SECURITY])
VAR thisWeight = SELECTEDVALUE(Holdings[WEIGHT])
VAR weightPortA = CALCULATE(
MINX(Holdings, [WEIGHT])
, FILTER(ALL(Holdings)
, Holdings[PORTFOLIO] = "Portfolio A"
&& Holdings[SECURITY] = thisSecurity
)
) + 0
VAR diff = thisWeight - weightPortA
RETURN diff
输出: