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

PowerBI瀑布图制作遇阻,求解决方案(含数据及效果对比)

PowerBI瀑布图制作方案

问题背景

想要制作一款展示从2020目标到2022目标间各阶段数值变化的瀑布图,包含年度目标、训练项增减、选项节点等内容,但当前使用DAX后得到的效果不符合预期,节点逻辑和展示顺序均存在问题。

所用数据

描述初始值节省值支出值
2020目标64.0
2021目标58.8
训练158.83.8
训练262.62.0
训练364.61.1
训练465.71.0
训练566.71.0
训练667.70.4
训练768.10.5
训练868.64.1
选项172.8
训练969.92.9
训练1067.32.6
训练1164.72.6
训练1263.61.1
训练1363.10.5
训练1462.90.2
选项262.9
训练361.81.1
训练460.81.0
训练559.81.0
训练659.40.4
训练758.90.5
选项358.9
2022目标62.44.00

解决步骤

一、调整数据结构(Power Query中操作)

PowerBI原生瀑布图无法直接识别多列的增减逻辑,需先标准化数据:

  1. 添加排序索引:新增索引列,按你想要的展示顺序给每一行编号(从0或1开始),避免可视化时顺序混乱。
  2. 统一变化值:新增自定义列变化值,公式:
    if [节省值] <> null then [节省值] else if [支出值] <> null then -[支出值] else null
    
    将节省(正向增量)和支出(负向增量)统一为一列数值。
  3. 标记汇总节点:新增自定义列是否为汇总项,公式:
    if [节省值] = null and [支出值] = null then true else false
    
    标记出年度目标、选项这类不需要展示增量的汇总节点。

二、DAX度量值计算

仅调整数据结构不足以实现逻辑衔接,需添加两个度量值:

  1. 累计值:计算每个节点的起始累计数值,保证瀑布图衔接正确
    累计值 = 
    VAR 当前索引 = MAX('数据表'[索引])
    RETURN
    CALCULATE(
        SUM('数据表'[初始值]),
        FILTER(ALL('数据表'), '数据表'[索引] <= 当前索引)
    ) + CALCULATE(
        SUM('数据表'[变化值]),
        FILTER(ALL('数据表'), '数据表'[索引] < 当前索引)
    )
    
  2. 节点显示值:让汇总节点显示初始值,训练项显示变化值
    节点显示值 = 
    IF(
        SELECTEDVALUE('数据表'[是否为汇总项]),
        SELECTEDVALUE('数据表'[初始值]),
        SELECTEDVALUE('数据表'[变化值])
    )
    

三、可视化配置

  1. 选择瀑布图,将描述拖到「轴」,节点显示值拖到「值」。
  2. 在「格式」面板的「分类选项」中,设置「总计」为是否为汇总项等于true的节点,这类节点会显示为完整柱子,作为数值锚点。
  3. 轴的排序选择「按索引列升序」,确保展示顺序正确。

通过以上步骤,即可实现符合预期的瀑布图效果,完整呈现各阶段的数值递进关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:31:16