如何编写DAX度量值:基于选中列名的True值筛选Power BI矩阵
基于字段参数选中列名筛选True值行的DAX度量值实现
场景说明
已通过**字段参数(Field Parameters)**创建包含目标列名的切片器,需编写DAX度量值,实现矩阵仅显示「选中列中值全部为True」的行。
DAX度量值代码
筛选True行 = VAR 选中列集合 = VALUES('字段参数表'[字段参数]) VAR 逐行判断结果 = ADDCOLUMNS( SUMMARIZE('业务数据表', '业务数据表'[唯一行标识]), // 替换为你的数据表和行唯一标识列(如姓名、ID) "是否符合条件", COUNTROWS( FILTER( 选中列集合, CALCULATE(MAX('业务数据表'[Value])) = TRUE() ) ) = COUNTROWS(选中列集合) ) RETURN IF( COUNTROWS(选中列集合) = 0, 1, // 未选任何列时显示所有行 MAXX(FILTER(逐行判断结果, [唯一行标识] = SELECTEDVALUE('业务数据表'[唯一行标识])), [是否符合条件]) )
代码解释
选中列集合:获取切片器中用户选中的所有列名逐行判断结果:对每一行进行校验,判断当前行在所有选中列中的值是否都为True,返回布尔值- 最终返回逻辑:无选中列时返回1(显示全部行);否则返回当前行的校验结果,仅返回1的行会被矩阵显示
使用步骤
- 将上述度量值拖入矩阵的视觉对象筛选器
- 设置筛选条件为「筛选True行 等于 1」
- 确保字段参数切片器与矩阵基于同一份业务数据表
效果示例
当切片器选中「Football」列时,矩阵仅显示Football列值为True的行,符合预期需求。
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

