创建一个 DAX 指标来计算各种投资组合持有权重与参考投资组合持有权重之间的差异

问题描述 投票:0回答:1

如果您能帮助我创建一个 DAX 指标,该指标可以计算多个投资组合相对于参考投资组合(这是通过切片器评估和选择的投资组合之一)的安全权重差异。最终用户将能够选择他们想要的投资组合作为参考投资组合。

我有一个名为“Holdings”的数据(事实)表,其中包含以下字段:日期、投资组合名称、证券代码和投资组合权重。

有三个查找 (DIM) 表链接到“Holdings”表,但我相信对于此特定场景我只需要日历表:日历表、证券和投资组合名称。

如果我在切片器中选择“投资组合 A”,我希望看到每种证券的以下内容:

  • 对于投资组合 A:该证券的投资组合 A 减去投资组合的权重 那种安全感的重量
  • 对于投资组合 B:投资组合 B 的证券权重减去投资组合 那种安全感的重量
  • 对于投资组合 C:该证券的投资组合 C 权重减去投资组合 该证券的权重等

持股表:

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)   -
powerbi dax
1个回答
0
投票

尝试这个措施:

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

输出:

output example

© www.soinside.com 2019 - 2024. All rights reserved.