You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerBI:基于StockHistoricData1和Tradebook_1制作投资组合价值折线图

PowerBI 投资组合估值度量值实现方案

核心思路

要计算指定日期的投资组合价值,需分两步:先算出该日期各股票的持仓数量,再乘以当日股价(无股价则忽略),最后求和。RELATED函数失效是因为它只能返回单值,而单只股票对应多日股价,无法直接关联,需用CALCULATE配合筛选条件获取当日股价。

步骤1:计算单股票持仓数量(辅助度量值)

单股票持仓量 = 
VAR 当前日期 = MAX('StockHistoricData1'[Date])
RETURN
SUMX(
    VALUES(Tradebook_1[StockCode]),
    CALCULATE(
        SUM(Tradebook_1[Quantity]) * IF(Tradebook_1[Operation] = "buy", 1, -1),
        Tradebook_1[TradeDate] <= 当前日期
    )
)

步骤2:计算投资组合总价值(最终度量值)

投资组合价值 = 
VAR 当前日期 = MAX('StockHistoricData1'[Date])
RETURN
SUMX(
    VALUES(Tradebook_1[StockCode]),
    VAR 持仓量 = CALCULATE(
        SUM(Tradebook_1[Quantity]) * IF(Tradebook_1[Operation] = "buy", 1, -1),
        Tradebook_1[TradeDate] <= 当前日期
    )
    VAR 当日股价 = CALCULATE(
        MAX(StockHistoricData1[ClosePrice]), -- 替换为你的实际股价字段,如收盘价/开盘价
        StockHistoricData1[Date] = 当前日期,
        StockHistoricData1[StockCode] = EARLIER(Tradebook_1[StockCode])
    )
    RETURN
    IF(NOT ISBLANK(当日股价), 持仓量 * 当日股价, 0)
)

关键说明

  1. 表关系检查:确保Tradebook_1与StockHistoricData1通过StockCode字段建立关联(多对多或一对多均可,只要股票代码匹配)。
  2. 日期表优化:建议新增独立日期表并与StockHistoricData1的Date字段关联,这样折线图的时间轴会更连续,不会因某股缺数据导致日期断档。
  3. 字段适配:将代码中的ClosePrice替换为你实际使用的股价字段,Operation的判断逻辑需与交易记录中的取值一致(如交易记录用"买入"/"卖出",则修改IF条件)。
  4. 缺失股价处理:IF(NOT ISBLANK(当日股价)...会自动忽略当日无股价的股票,符合需求。

内容的提问来源于Stack Exchange,提问作者Joker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:20:16