Power BI DAX 基于父子层级切片器选择动态过滤矩阵/表格咨询
Power BI 层级切片器动态过滤实现方案
这个需求可以直接通过 DAX 度量值搭配视觉对象筛选器实现,操作步骤如下:
- 第一步:在你的源表中新建如下度量值,用于判断切片器的选中层级并输出过滤标识
动态过滤标识 = VAR 子级SubCat是否被单独筛选 = ISFILTERED('源表'[Sub-Cat]) RETURN IF( 子级SubCat是否被单独筛选, // 选中子级时仅保留标记为Include的行 IF(SELECTEDVALUE('源表'[Filter Column]) = "Include", 1, 0), // 仅选中父级Category时保留所有行 1 )
如果需要兼容子级多选的场景,可以调整度量值写法:
动态过滤标识 = VAR 子级SubCat是否被单独筛选 = ISFILTERED('源表'[Sub-Cat]) RETURN IF( 子级SubCat是否被单独筛选, IF("Include" IN VALUES('源表'[Filter Column]), 1, 0), 1 )
- 第二步:打开你要展示数据的矩阵/表格的「筛选器」面板,把上面新建的
动态过滤标识度量值拖入此视觉对象的筛选器区域,筛选条件设置为「等于 1」,点击应用筛选即可。
效果验证
- 仅选中切片器父级Category时,
ISFILTERED('源表'[Sub-Cat])返回FALSE,度量值所有行都返回1,全量数据正常展示,符合第一个预期效果 - 选中切片器子级Sub-Cat时,
ISFILTERED('源表'[Sub-Cat])返回TRUE,自动过滤掉Filter Column为Exclude的行,仅展示Dedicated对应的Include数据,符合第二个预期效果
内容的提问来源于stack exchange,提问作者San83
相关产品推荐
相关产品推荐

