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

在Power BI中计算各公司指数值的时段百分比变化度量值

实现筛选时段内按名称计算指数值百分比变化的DAX度量值

以下是满足需求的完整DAX度量值代码:

% Change = 
VAR SelectedPeriod = ALLSELECTED(Returns[Date])
VAR CurrentName = SELECTEDVALUE(Returns[Name])
VAR EndDate = MAX(Returns[Date])
VAR StartDate = MIN(Returns[Date])
VAR EndIndex = CALCULATE(MAX(Returns[Index Value]), 
    Returns[Name] = CurrentName,
    Returns[Date] = EndDate
)
VAR StartIndex = CALCULATE(MAX(Returns[Index Value]), 
    Returns[Name] = CurrentName,
    Returns[Date] = StartDate
)
RETURN
DIVIDE(EndIndex, StartIndex) - 1

代码说明

  • SelectedPeriod:通过ALLSELECTED锁定当前图表或切片器筛选后的日期范围,确保计算严格限定在用户选择的时段内。
  • CurrentName:用SELECTEDVALUE获取当前上下文的公司名称,保证按Name维度分组独立计算。
  • EndDate/StartDate:分别提取筛选时段内的最大(期末)、最小(期初)日期,适配任意时间范围的筛选调整。
  • EndIndex/StartIndex:通过CALCULATE精准筛选对应公司、对应日期的指数值,使用MAX而非SUM是因为单日期单公司仅一条数据,MAX能避免多数据场景下的求和错误,取值更严谨。
  • 返回逻辑:用DIVIDE处理除法(自动应对除零错误),再减1得到最终的百分比变化值。

对原代码的修正点

  1. 补充了期初值的计算逻辑,完整实现「期末值/期初值 - 1」的核心公式。
  2. 将SUM替换为MAX,避免多数据场景下的计算偏差。
  3. 补全了语法结构,通过变量拆分逻辑让代码更易读维护。

示例验证

若筛选日期范围为01/10/2022至10/10/2022:

  • Company A:期初值101,期末值103.5,计算得(103.5/101)-1≈2.47%
  • Company B:期初值104.5,期末值109,计算得(109/104.5)-1≈4.31%

调整时间筛选范围时,度量值会自动重新识别新的期初、期末日期并计算对应变化值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:15:37