You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerBI中使用OR逻辑而非默认AND逻辑筛选表格视觉对象

实现独立切片器多条件“或”筛选的DAX解决方案

问题背景

现有Sample_Table表包含Name和ID列,需要通过两个独立的切片器(分别基于Sample_Names和Sample_IDs,已关闭与原表的交互)实现:选中任意切片器的条件时,返回匹配任一条件的行(比如选"Anna"和ID"2",返回Anna和Bob的行)。之前用SELECTEDVALUE获取切片器值时无数据返回,硬编码值则正常。

核心原因

SELECTEDVALUE仅能返回切片器的单个选中值,多选时会返回空白;同时因为切片器表与原表无关联,无法直接通过上下文传递筛选值,必须用ALLSELECTED获取切片器的所有选中项集合。

可行实现方案

方案1:创建筛选后的计算表

直接生成符合条件的结果表,可用于可视化展示:

Filtered_Table = 
VAR Selected_Names = ALLSELECTED(Sample_Names[Name])
VAR Selected_IDs = ALLSELECTED(Sample_IDs[ID])
RETURN
CALCULATETABLE(
    Sample_Table,
    OR(
        Sample_Table[Name] IN Selected_Names,
        Sample_Table[ID] IN Selected_IDs
    )
)
  • ALLSELECTED(Sample_Names[Name]):获取名称切片器中所有选中的名称集合
  • ALLSELECTED(Sample_IDs[ID]):获取ID切片器中所有选中的ID集合
  • OR(...):判断原表行是否匹配任一切片器的筛选条件

方案2:用度量值标记符合条件的行

如果需要基于原表进行可视化,可创建度量值标记匹配行,再筛选标记为1的行:

Is_Matched = 
VAR Selected_Names = ALLSELECTED(Sample_Names[Name])
VAR Selected_IDs = ALLSELECTED(Sample_IDs[ID])
RETURN
IF(
    OR(
        SELECTEDVALUE(Sample_Table[Name]) IN Selected_Names,
        SELECTEDVALUE(Sample_Table[ID]) IN Selected_IDs
    ),
    1,
    0
)

用法:将该度量值添加到可视化表中,设置筛选条件Is_Matched = 1即可。

验证效果

当选中名称"Anna"和ID"2"时,Selected_Names为{"Anna"},Selected_IDs为{2},Sample_Table中所有Name=Anna或ID=2的行都会被筛选出来,符合需求。

内容的提问来源于stack exchange,提问作者SequelSnake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:42:03