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

Power BI中DAX代码解析求助:__avail__变量含义与计算逻辑

Power BI DAX瀑布图代码解析

问题背景

刚入职第一份实习,需理解一段用于生成瀑布图的Power BI DAX代码,代码如下:

_Bridge_% = 
VAR __avail__ = SUM([MaxCapacityLbs]) + SUM([UpstreamRateLossLbs])
RETURN
SWITCH(MIN(TRSp_Area_Bridge[Lookup]),
    "theo", BLANK(),
    "a", BLANK(),
    "b", BLANK(),
    "c", BLANK(),
    "c2", BLANK(),
    "c21", BLANK(),
    "avl", 1,
    "d", SUM([Loss_d]) / __avail__,
    "d22", SUM([Loss_d22]) / __avail__,
    "e", SUM([Loss_e]) / __avail__,
    "e1", SUM([Loss_e1]) / __avail__,
    "e2", BLANK(),
    "e3", BLANK(),
    "e5", SUM([Loss_e5]) / __avail__,
    "f", SUM([Loss_f]) / __avail__,
    "f11", SUM([Loss_f11]) / __avail__,
    "f130", SUM([Loss_f130]) / __avail__,
    "f131", SUM([Loss_f131]) / __avail__,
    "f132", SUM([Loss_f132]) / __avail__,
    "f14", SUM([Loss_f14]) / __avail__,
    "f2", SUM([Loss_f2]) / __avail__,
    "f3", SUM([Loss_f3]) / __avail__,
    "f4", SUM([Loss_f4]) / __avail__,
    "g1", SUM([Loss_g1]) / __avail__,
    "g23", SUM([Loss_g23]) / __avail__,
    "g24", SUM([Loss_g24]) / __avail__,
    "g25", SUM([Loss_g25]) / __avail__,
    "g26", SUM([Loss_g26]) / __avail__,
    "g3", SUM([Loss_g3]) / __avail__,
    "i", BLANK()

存在的疑问:

  • 首次接触Power BI,对DAX的运行逻辑存疑
  • SWITCH分支数量远多于图表展示的13个条形,不清楚原因
  • 核心困惑:__avail__变量的作用,以及/ __avail__的计算意义

代码解析

1. __avail__与/ __avail__的核心作用

__avail__是DAX变量,用于计算可用总容量基准值:

  • SUM([MaxCapacityLbs]):求和得到系统的最大承载重量
  • SUM([UpstreamRateLossLbs]):求和得到上游环节的损耗重量
  • 两者相加得到的__avail__,是作为分母的统一基准,将各类损耗(Loss_xx字段)转换为占可用总容量的百分比

/ __avail__的计算逻辑:把某类损耗的总重量除以可用总容量基准,最终得到该损耗在总可用容量中的占比,这是瀑布图展示各环节损耗占比的核心计算逻辑。

2. SWITCH多分支未使用的原因

分支数多于图表展示条形的原因通常有两点:

  • 该度量值是通用计算逻辑:数据表TRSp_Area_Bridge的Lookup字段包含所有分支的取值,但当前瀑布图仅筛选出了13个有效类别展示
  • 预留扩展空间:后续新增损耗类别时,只需在图表中添加对应Lookup值即可,无需修改DAX代码

3. Power BI中DAX的运行逻辑(新手向)

DAX不是传统的“预存储算法”,而是动态计算引擎:

  • 度量值(如_Bridge_%)不会提前计算存储结果,而是在用户交互(筛选、切换图表等)时,根据当前上下文(筛选出的行/列维度)实时计算
  • 代码中的MIN(TRSp_Area_Bridge[Lookup])是获取当前筛选上下文下Lookup字段的唯一值,再匹配SWITCH分支返回对应计算结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 16:13:34