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

Power BI中Max与ALLEXCEPT组合分组求最大值异常问题排查

问题原因及解决办法

第一个公式的问题

你第一个公式里用ALLEXCEPT(cr481_evergradegroups, cr481_evergradegroups[EvergradeGroup])作为筛选条件,核心问题是表关系的筛选逻辑没搞对:

  • 假设分组表cr481_evergradegroups和产品表cr481_product是一对多关联(一个分组对应多个产品),ALLEXCEPT会保留当前分组的筛选,但CALCULATE计算产品表的MAX时,可能因为分组表存在重复的EvergradeGroup行,或者表关系的筛选方向设置错误,导致筛选范围超出了目标分组,把其他分组的产品数据也包含进来,才会算出16.5这种离谱的结果(毕竟你实际分值只有1-10)。

第二个公式的问题

用LOOKUPVALUE把分组移到产品表后结果更糟,大概率是LOOKUPVALUE本身出了问题:

  • 如果一个产品对应多个分组(表关系不是严格的一对多),LOOKUPVALUE会返回错误值或者随机匹配的分组,导致产品表的EvergradeGroup列数据混乱;就算是严格一对多,LOOKUPVALUE生成的计算列不会自动同步表关系的筛选,反而可能因为数据刷新或关联错误导致分组值错误,让ALLEXCEPT的筛选完全失效。

正确写法参考

直接基于产品表,利用表关系的筛选来计算分组最大值,不用绕分组表:

DurabilityMax = 
CALCULATE(
    MAX(cr481_product[DurabilityPoints]),
    ALL(cr481_product),
    VALUES(cr481_evergradegroups[EvergradeGroup])
)

如果你的视觉对象里已经用到了EvergradeGroup字段,还可以更简单:

DurabilityMax = 
CALCULATE(
    MAX(cr481_product[DurabilityPoints]),
    ALLEXCEPT(cr481_product, cr481_evergradegroups[EvergradeGroup])
)

另外别忘了检查两点:

  • 分组表cr481_evergradegroups里的"Blankets & Throws"分组有没有重复行;
  • 产品表中该分组的产品,DurabilityPoints列是不是真的没有16.5这种异常值(比如输入错误,或者该列是计算列,公式写错了)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:37:27