Power BI基于聚合值生成Flag列的计算列/度量值创建求助
Power BI 聚合维度Flag列实现方案
核心逻辑
通过DAX的上下文控制函数实现类似SQL GROUP BY、Tableau Fixed的分组聚合效果,先对指定维度下的Amount_rc、Amount_rb做聚合计算,再基于聚合结果判断Flag值。
场景1:预定义固定分组维度的计算列
适合分组规则固定的场景,效果等同于Tableau中Fixed [分组列1],[分组列2]:聚合逻辑,数据刷新时预计算完成。
聚合维度Flag_计算列 = // 替换下方的[分组列1]、[分组列2]为你实际要分组的字段,可新增/减少分组列 VAR 分组_rc总和 = CALCULATE(SUM('表名'[Amount_rc]), ALLEXCEPT('表名', '表名'[分组列1], '表名'[分组列2])) VAR 分组_rb总和 = CALCULATE(SUM('表名'[Amount_rb]), ALLEXCEPT('表名', '表名'[分组列1], '表名'[分组列2])) RETURN IF( 分组_rc总和 <> 0 && 分组_rb总和 <> 0, "rc and rb", IF( 分组_rc总和 <>0 && 分组_rb总和 =0, "rc not rb", "rb not rc" ) )
场景2:动态适配视觉分组的度量值
适合需要灵活切换分组维度的场景,自动匹配当前视觉对象中选中的行/列分组维度,无需预先指定分组规则。
聚合维度Flag_度量值 = // 自动读取当前筛选上下文的聚合值,跟随视觉分组维度动态变化 VAR 当前_rc聚合 = SUM('表名'[Amount_rc]) VAR 当前_rb聚合 = SUM('表名'[Amount_rb]) RETURN IF( 当前_rc聚合 <> 0 && 当前_rb聚合 <> 0, "rc and rb", IF( 当前_rc聚合 <>0 && 当前_rb聚合 =0, "rc not rb", "rb not rc" ) )
验证调整说明
- 把分组列、Flag字段、
Amount_rc/Amount_rb的聚合值放到同一矩阵中,即可对照验证判断逻辑是否符合预期 - 如需调整聚合规则,直接把代码中的SUM替换为MAX、MIN、COUNT等对应聚合函数即可
内容的提问来源于stack exchange,提问作者venkat
相关产品推荐
相关产品推荐

