点击Sheet1表格任意行时如何正确过滤Sheet2、Sheet3的对应关联数据
你之前写的度量值仅用SELECTEDVALUE获取值,当选中行关联多个匹配数据、或者未明确选中单个CPL时会返回空,导致过滤逻辑失效,同时也没有适配Sheet3的过滤需求,可按下面两种方案解决:
方案1:度量值控制(无需修改数据模型)
步骤1:创建两个控制显示的度量值
给Sheet2创建显示控制度量值:
Sheet2 显示控制 = VAR 选中的CPL = ALLSELECTED(Sheet1[CPL]) RETURN IF( ISFILTERED(Sheet1[CPL]), IF(COUNTROWS(FILTER(Sheet2, Sheet2[CPL] IN 选中的CPL)) > 0, 1, 0), 1 // 未选中Sheet1行时默认显示Sheet2全部数据,不需要可改为0 )
给Sheet3创建显示控制度量值:
Sheet3 显示控制 = VAR 选中的CPL = ALLSELECTED(Sheet1[CPL]) RETURN IF( ISFILTERED(Sheet1[CPL]), IF(COUNTROWS(FILTER(Sheet3, Sheet3[CPL] IN 选中的CPL)) > 0, 1, 0), 1 // 未选中Sheet1行时默认显示Sheet3全部数据,不需要可改为0 )
步骤2:配置视觉对象筛选器
- 选中页面上的Sheet2表格视觉对象,将
Sheet2 显示控制拖入右侧筛选器面板,设置筛选条件为「等于1」,应用筛选 - 选中页面上的Sheet3表格视觉对象,将
Sheet3 显示控制拖入右侧筛选器面板,设置筛选条件为「等于1」,应用筛选
配置完成后点击Sheet1的任意行,另外两个表格就会自动过滤出对应CPL的所有匹配数据。
方案2:建立模型关系(操作更简便)
如果你的数据结构允许修改模型关联,可直接用关系传递筛选上下文,无需写度量值:
- 进入「模型」视图,将Sheet1表的
[CPL]字段拖拽到Sheet2表的[CPL]字段上,创建两表的关联关系 - 同样将Sheet1表的
[CPL]字段拖拽到Sheet3表的[CPL]字段上,创建关联关系 - 按需设置交叉筛选方向:如果是Sheet1的CPL不重复、作为一端关联Sheet2、Sheet3的多端,默认单向筛选即可生效;如果是多对多关系,将交叉筛选方向设置为双向即可
配置完成后点击Sheet1的行,筛选上下文会自动传递到另外两个表,自动过滤匹配数据。
内容的提问来源于stack exchange,提问作者ADITYA KUMAR PINJALA
相关产品推荐
相关产品推荐

