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

DAX创建Income计算列时如何新增「All costs」汇总分类项

问题核心说明

你当前写的计算列是逐行计算属性,每行只能归属一个分类,而All costs是汇总级标签,无法直接通过给每行加计算列值的方式实现,需要调整实现方案,以下是可落地的两种解法:

第一步:先修正原有DAX的逻辑错误

你原表达式中逻辑运算符优先级有误,&&优先级高于||,原g2的判断会被DAX解析为account no=2 || account no=3 || (account no=5 && account group <> 20),不符合你期望的「三个账号都满足account group不等于20」的逻辑,需要调整为:

// 修正后的原有分类逻辑(仅用于生成前三个分类的计算列)
Income = 
VAR g1 = '表名'[account number] = 3
VAR g2 = '表名'[account number] IN {2,3,5} && '表名'[account group] <> 20
VAR g3 = '表名'[account group] = 20
RETURN
SWITCH(
    TRUE(),
    g1, "Group1",
    g2, "Group2",
    g3, "Group3"
)

第二步:实现All costs汇总行的两种方案

方案1:用计算组实现(最优方案,无需修改原有度量值)

计算组是专门处理自定义分类汇总的DAX功能,实现步骤:

  1. 打开Power BI/SSAS的模型视图,新建计算组,命名为Income分类组
  2. 给计算组依次添加4个计算项,表达式分别为:
    • Group1:CALCULATE(SELECTEDMEASURE(), '表名'[account number] = 3)
    • Group2:CALCULATE(SELECTEDMEASURE(), '表名'[account number] IN {2,3,5} && '表名'[account group] <> 20)
    • Group3:CALCULATE(SELECTEDMEASURE(), '表名'[account group] = 20)
    • All costs:SELECTEDMEASURE()
  3. 将计算组的默认列(通常命名为Name,可自行修改为Income分类)放到表格视觉对象的行维度,搭配原有Totalsum度量值即可同时显示4个分类和对应数值,All costs会自动汇总前三者的结果。

方案2:自定义分类表+适配度量值(无需使用计算组)

如果不想使用计算组,可以用独立分类表的方式实现:

  1. 新建一个无关联的独立表Income分类表,仅含1列Income分类,值为Group1、Group2、Group3、All costs
  2. 新建适配度量值:
适配后Totalsum = 
VAR 当前选分类 = SELECTEDVALUE('Income分类表'[Income分类])
RETURN
SWITCH(
    TRUE(),
    当前选分类 = "Group1", CALCULATE([Totalsum], '表名'[account number] = 3),
    当前选分类 = "Group2", CALCULATE([Totalsum], '表名'[account number] IN {2,3,5} && '表名'[account group] <> 20),
    当前选分类 = "Group3", CALCULATE([Totalsum], '表名'[account group] = 20),
    当前选分类 = "All costs", [Totalsum],
    [Totalsum]
)
  1. 将Income分类表的Income分类列放到表格行维度,搭配上述适配度量值即可显示所需效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:57:01