DAX添加分组求和列问题求助(Power BI)
解决Power BI中按人员分组计算总支付金额的DAX问题
你用SUMMARIZE函数报错的原因是:这个函数返回的是表对象,而计算列需要返回单个标量值(每行对应一个具体的金额数),两者类型不匹配,所以触发错误提示。
方法1:创建计算列(添加到原表的第三列)
如果需要在原表中新增一列Salary,显示每个人员的总支付金额,用以下DAX公式:
Salary = CALCULATE( SUM('Table'[refs]), ALLEXCEPT('Table', 'Table'[name]) )
- 原理:
ALLEXCEPT('Table', 'Table'[name])会保留当前行的[name]筛选条件,清除其他所有筛选,然后计算该人员的所有[refs]总和。 - 也可以用更直观的写法:
Salary = CALCULATE( SUM('Table'[refs]), 'Table'[name] = EARLIER('Table'[name]) )
EARLIER('Table'[name])引用当前行上下文的[name]值,筛选出同姓名的所有行后求和。
方法2:创建度量值(用于可视化分组求和)
如果不需要修改原表,只是在报表可视化中按人员展示总金额,创建度量值更高效:
总支付金额 = SUM('Table'[refs])
使用时,将[name]字段拖到视觉对象(比如表格)的行区域,再拖入这个度量值,Power BI会自动按姓名分组计算总和。
内容的提问来源于stack exchange,提问作者Инсаф Дускаев
相关产品推荐
相关产品推荐

