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

如何在PowerBI中计算日收益率及累计日复利收益率?

解决方案:Power BI 计算日复利收益率

核心问题分析

你之前的公式存在两个关键错误:

  1. 逻辑错误:1+SummaryTable[ROIC_DTD]-1等价于直接使用ROIC_DTD,完全没实现(1+日收益率)相乘的复利逻辑
  2. 迭代对象错误:直接迭代SummaryTable会重复计算同一日期下的多条明细,且ALLSELECTED(SummaryTable)会清除行业/区域等筛选上下文,导致计算结果不符合预期

正确度量值写法(推荐使用独立日期表)

Power BI中使用独立日期表是处理时间智能的最佳实践,先创建日期表(如果还没有):

DateTable = CALENDARAUTO()

将DateTable[Date]与RAW_DATA[Date]建立关系,然后创建累计复利收益率度量值:

累计复利收益率 = 
VAR 选中日期范围 = ALLSELECTED(DateTable[Date])
VAR 每日收益率列表 = 
    ADDCOLUMNS(
        选中日期范围,
        "@当日收益率", [ROIC_DTD]
    )
VAR 复利乘积 = PRODUCTX(每日收益率列表, 1 + [@当日收益率])
RETURN
    复利乘积 - 1

无独立日期表的替代写法

如果暂时不想创建日期表,可以直接使用RAW_DATA中的日期列:

累计复利收益率 = 
VAR 选中日期范围 = ALLSELECTED(RAW_DATA[Date])
VAR 去重日期列表 = DISTINCT(选中日期范围)
VAR 每日收益率列表 = 
    ADDCOLUMNS(
        去重日期列表,
        "@当日收益率", [ROIC_DTD]
    )
VAR 复利乘积 = PRODUCTX(每日收益率列表, 1 + [@当日收益率])
RETURN
    复利乘积 - 1

关键逻辑说明

  1. 选中日期范围:获取滑块或筛选器指定的日期区间
  2. 每日收益率列表:为每个日期匹配当前筛选上下文(如行业、区域)下的当日收益率(ROIC_DTD会自动继承这些筛选)
  3. 复利乘积:对每个日期的(1+当日收益率)执行乘积运算,模拟Excel的PRODUCT(1+日收益率)
  4. 最终结果:乘积减1得到累计复利收益率

额外优化建议

如果存在当日无数据的情况(收益率为空白),可以修改PRODUCTX部分避免结果空白:

VAR 复利乘积 = PRODUCTX(每日收益率列表, IF(ISBLANK([@当日收益率]), 1, 1 + [@当日收益率]))

内容的提问来源于stack exchange,提问作者purealpha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:32:21