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

Power BI 如何基于同表其他行在同一列实现Value减Spend计算

Power BI 「Value - Spend」计算两种可行方案

你可以根据自己的使用场景二选一:

方案1:Power Query 修改源表结构(生成物理Return行)

适合需要把Return作为实际行存储到表中、后续需要做其他关联计算的场景,操作步骤如下:

  • 进入Power Query编辑器,选中你的源表,点击「转换」选项卡下的「分组依据」
  • 分组设置:按Product列分组,新列名自定义(比如命名为分组数据),操作选择「所有行」,点击确定
  • 点击「添加列」选项卡下的「自定义列」,输入如下公式:
Table.InsertRows(
    [分组数据],
    2,
    {
        [
            Product = [Product],
            Values = "Return",
            Outcomes = 
                List.Sum(Table.SelectRows([分组数据], each [Values] = "Value")[Outcomes]) 
                - List.Sum(Table.SelectRows([分组数据], each [Values] = "Spend")[Outcomes])
        ]
    }
)
  • 展开新生成的自定义列,勾选Product、Values、Outcomes三个字段,删除多余的分组列,即可得到你预期的表结构。

方案2:DAX 度量值方案(无需修改源表,直接在可视化组件展示)

适合只需要在仪表板展示结果、不需要修改源表结构的场景,灵活性更高,操作步骤如下:

  1. 新建三个基础度量值:
总Value = CALCULATE(SUM('你的表名'[Outcomes]), '你的表名'[Values] = "Value")
总Spend = CALCULATE(SUM('你的表名'[Outcomes]), '你的表名'[Values] = "Spend")
Return = [总Value] - [总Spend]
  1. 如果你需要和原有Value、Spend行合并展示,再新建一个Values维度表:
Values维度 = UNION(VALUES('你的表名'[Values]), {"Return"})
  1. 新建动态展示度量值:
展示结果 = 
SWITCH(
    SELECTEDVALUE('Values维度'[Values]),
    "Value", [总Value],
    "Spend", [总Spend],
    "Return", [Return],
    BLANK()
)
  1. 可视化配置:表格/矩阵的行字段依次放Product、Values维度[Values],值字段放展示结果度量值,即可直接输出你要的展示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:24:04