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

Power BI DAX中DISTINCT函数未遵循当前筛选上下文问题排查

DAX 虚拟表不响应切片器筛选的问题原因及解决方案

核心问题原因

问题本质是混淆了模型级计算表和度量值内虚拟表的计算时机:

  • 如果你是直接在Power BI/Excel的建模选项卡中新建的计算表,公式为Distinc Products Sold = DISTINCT(fSales[Product Sold]),这类计算表属于静态计算对象,仅在数据集刷新时执行一次计算,使用的是无筛选的完整数据上下文,完全不会响应报表页上的切片器、页面筛选等交互操作,所以永远返回全量3款产品。
  • 只有在度量值内部定义的临时虚拟表,才会继承当前报表的筛选上下文,动态响应筛选操作。

解决方案

根据你的使用场景选择对应方案:

场景1:需要在DAX逻辑中动态调用可见产品列表

直接在度量值内部定义该虚拟表即可,它会自动继承切片器的筛选:
示例:计算当前筛选下的去重产品数量的度量值:

Distinct Product Count = 
COUNTROWS(
    DISTINCT(fSales[Product Sold]) // 该虚拟表会响应当前筛选上下文
)

你可以将该度量值和你之前创建的Rows Visible度量值同时放到画布上,调整切片器时两者的结果会匹配,验证筛选传递的正确性。

场景2:需要在报表上直接展示可见的去重产品列表

不需要额外创建任何计算表,直接将fSales[Product Sold]字段拖入表/矩阵视觉对象即可,视觉对象会自动应用当前页面的所有筛选,仅展示当前日期区间内有销售记录的产品。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:06:06