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

Power BI图表显示非预期值,表关系与DAX度量值问题求助

问题原因
  • 关系方向反转:Power BI创建关系时会自动根据关联列的唯一值基数判定"一"端和"多"端,你预期orders表为"一"端、Order Items表为"多"端,但实际key12列在orders表的唯一值数量高于Order Items表,导致系统自动将Order Items判定为"一"端,关系方向和预期相反。
  • 计算结果不符合预期:
    1. 反向关系下,筛选上下文只能从Order Items表传递到orders表,你图表维度同时使用了orders[Order Id]和Order Items[Product Id]两个跨表字段,筛选无法传递到Order Items表执行求和运算,最终输出值和预期不符。
    2. 关联键设计冗余:订单模型常规关联逻辑为orders[Order Id](一)关联Order Items[Order Id](多),你额外合并Order Id+Product Id生成key12作为关联键,反而会因为字段逻辑错误导致匹配异常。
可行解决方案

推荐方案(符合标准星型模型设计)

  1. 删除两张表中冗余的key12列,同时删除当前基于key12创建的关联关系
  2. 重新创建两表关联:以orders[Order Id]为公共关联键,手动设置基数为orders(1) → Order Items(*),筛选方向为单方向,将关系设置为激活状态
  3. 简化度量值,无需调用USERELATIONSHIP函数:
order_to_orderitem = SUM('Order Items'[Unit Price])
  1. 重新配置图表,使用orders[Order Id]、Order Items[Product Id]搭配上述度量值,即可得到预期输出。

备选方案(需保留key12的场景)

  1. 检查两张表key12的生成逻辑,确保orders表中key12的唯一值数量 ≤ Order Items表中key12的唯一值数量
  2. 手动编辑现有关系,将基数调整为orders(1) → Order Items(*),筛选方向设置为从orders到Order Items,保持关系为激活状态
  3. 如果这是两表之间唯一的激活关系,可简化度量值删除USERELATIONSHIP函数;如果存在其他激活关系,保留原有度量值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:06:03