Power BI 实现同类别任意项Result为1时全类别Final返回1的DAX写法
Power BI DAX 分类Final值计算实现
前提:已在模型中建立Table1[Category]与Table2关联外键的一对多关系(Table1为一侧,Table2为多侧)
计算列实现(适合持久化每行Final值,可作为筛选/分组维度)
直接在Table2中新建计算列,DAX代码:
Final = VAR CurrentCategory = RELATED(Table1[Category]) RETURN IF( CALCULATE( MAX(Table2[Result]), ALLEXCEPT(Table2, Table2[Category]) ) = 1, 1, 0 )
如果Table2已冗余存储Category字段,可省略RELATED步骤,直接引用Table2[Category]作为CurrentCategory值。
度量值实现(适合动态计算,不占用模型存储)
新建度量值,DAX代码:
Final 度量值 = VAR CurrentFilterCategory = MAX(Table1[Category]) RETURN IF( CALCULATE( MAX(Table2[Result]), REMOVEFILTERS(Table2[name]), Table1[Category] = CurrentFilterCategory ) = 1, 1, 0 )
说明:该度量值会自动适配报表当前的筛选上下文,若需要忽略所有非Category的筛选,可将REMOVEFILTERS(Table2[name])替换为ALL(Table2[name], Table2[Result])
规则适配验证:
- 分类A下仅1条Result=1 → 所有分类A关联条目Final返回1
- 分类B下所有Result=0 → 所有分类B关联条目Final返回0
- 分类C下1条Result=1 → 所有分类C关联条目Final返回1
内容的提问来源于stack exchange,提问作者tabselious
相关产品推荐
相关产品推荐

