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

PowerBI中按ID分组并仅对Type为A的Amount求和的实现求助

两种实现方案(DAX + Power Query)

DAX 实现方案

1. 计算列(嵌入原表)

如果要在原数据表中新增一列,直接展示每个ID对应的Type=A的Amount总和,使用以下DAX公式:

Sum_A_Amount = 
CALCULATE(
    SUM('数据表'[Amount]),
    ALLEXCEPT('数据表', '数据表'[ID]),
    '数据表'[Type] = "A"
)

替换公式中的'数据表'为你的实际表名即可。ALLEXCEPT会保留当前行的ID筛选条件,只对Type为A的行求和。

2. 度量值(报表动态计算)

如果是在报表可视化中需要动态计算(比如配合切片器交互),创建度量值更合适:

Total_A_Amount = 
CALCULATE(
    SUM('数据表'[Amount]),
    '数据表'[Type] = "A"
)

使用时,将ID字段和该度量值添加到表格等视觉对象中,PowerBI会自动按ID分组计算对应结果。

Power Query 实现方案

图形化操作步骤

  1. 进入PowerBI的Power Query编辑器(点击主页选项卡的"转换数据")
  2. 选中目标数据表,点击开始选项卡 → 分组依据
  3. 在分组窗口选择高级模式:
    • 分组列选择ID,操作选"分组依据"
    • 新增聚合列:列名设为Sum_A_Amount,操作选"求和",目标列选Amount,然后点击"添加条件",设置Type等于"A"
  4. 点击确定,即可得到按ID分组、仅统计Type=A的Amount求和表

M语言直接编写

如果习惯用代码实现,可在Power Query的高级编辑器中替换为以下M代码:

let
    源 = 你的数据源,
    按ID分组并筛选TypeA求和 = Table.Group(源, {"ID"}, {{"Sum_A_Amount", each List.Sum(Table.SelectRows(_, (行) => 行[Type] = "A")[Amount]), type number}})
in
    按ID分组并筛选TypeA求和

替换你的数据源为实际的数据源引用,这段代码会先按ID分组,再在每个分组内筛选Type=A的行,最后对Amount求和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:53:18