编写DAX表达式:基于筛选的A列提取对应B列值
基于筛选条件提取对应列内容的DAX表达式
根据你的需求,这里提供几种适用于不同场景的DAX解决方案:
1. 单值匹配场景(确保筛选后A列仅对应唯一B值)
如果报表中对A列的筛选只会返回唯一对应的B值,使用SELECTEDVALUE函数最直接:
提取B列内容 = SELECTEDVALUE('你的表名'[B])
逻辑说明
SELECTEDVALUE会自动识别当前报表筛选上下文下A列对应的B列值,当筛选后仅存在一个B值时直接返回该值;若存在多个匹配值,默认返回空白,也可自定义替代值(比如SELECTEDVALUE('你的表名'[B], "多值匹配"))。- 对应你的示例:当筛选A列为
ab时,该度量值会返回1。
2. 多值匹配场景(需返回所有匹配的B值)
如果筛选后A列对应多个B值,需要将所有结果拼接成文本,可使用CONCATENATEX:
提取所有B列内容 = CONCATENATEX('你的表名', '你的表名'[B], ", ")
逻辑说明
- 该函数会遍历筛选后的表行,将所有B列值用指定分隔符(这里是
,)拼接成单个字符串返回。
3. 计算列场景(提前关联A和B值)
如果需要在表中直接生成一列,存储每个A值对应的B值(适用于A列无重复的情况),可以创建计算列:
对应B值 = LOOKUPVALUE('你的表名'[B], '你的表名'[A], '你的表名'[A])
逻辑说明
LOOKUPVALUE会根据当前行的A值,在表中查找对应的B值返回,适合A列是唯一标识的场景。
内容的提问来源于stack exchange,提问作者UVB
相关产品推荐
相关产品推荐

