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

Power BI中VALUES函数未响应筛选返回全部值的技术咨询

Power BI中VALUES函数创建表不受切片器筛选的问题分析

问题背景

  • 表结构:Users表包含Name、Car列;Brands表包含Brand列,两表为一对多关系
  • DAX公式:创建计算表 SelectedNames = VALUES(Users)
  • 报表配置:添加三个视觉对象——Users表、Brand[Brand]切片器、SelectedNames表
  • 异常现象:切片器选择任意品牌后,Users表会同步筛选,但SelectedNames表始终显示全部用户名称,不符合预期
  • 官方文档说明:

当在已筛选的上下文中使用VALUES函数时,其返回的唯一值会受筛选影响。

原因分析

你没有误解官方文档,但混淆了计算表的执行时机和文档中描述的筛选上下文场景:

  • DAX计算表是在数据模型加载/刷新时生成的静态表,只会计算一次,之后不会响应报表层面的动态筛选(比如切片器、视觉对象交互)。
  • 官方文档中提到的"已筛选的上下文",指的是度量值、计算列这类在报表渲染、用户交互时动态计算的场景,而非计算表的创建逻辑。

解决方案

方案1:用度量值配合原生视觉对象(推荐)

如果只是需要展示筛选后的去重名称,无需创建计算表:

  • 直接使用Users[Name]作为视觉对象的字段,关闭"显示无数据的项目"选项,切片器筛选后会自动显示符合条件的去重名称。
  • 若需要聚合展示,可创建度量值:
筛选后去重名称 = CONCATENATEX(VALUES(Users[Name]), Users[Name], ", ")

方案2:创建动态M查询表(需数据刷新)

如果确实需要一个能响应筛选的动态表,可通过Power Query实现:

  1. 创建一个基于Brands[Brand]的参数,设置允许从切片器选择值
  2. 在Power Query中加载Users表,添加筛选步骤,关联上述参数
  3. 将切片器与参数联动,设置切片器值变化时触发数据刷新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:22:13