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

PowerBI中存在多个最大缺陷值时如何显示首个对应分类?

解决Power BI里多个最大值时显示首个缺陷分类的问题

嘿,我明白你现在遇到的麻烦:用LOOKUPVALUE找最大缺陷值对应的分类时,一旦有多个相同的最大值就报错,想在卡片里只显示首个对应的分类对吧?这就给你搞定!

为啥原来的公式会报错?

LOOKUPVALUE这个函数的脾气很倔——它要求匹配到的结果必须是唯一值,要是有好几行都等于最大值,它就不知道该返回哪个了,直接给你抛那个"Multiple values supplied..."的错误。所以我们得换个思路,主动告诉Power BI:“就算有多个最大值,你给我取第一个就行”。

两种靠谱的DAX写法

方法1:用TOPN精准挑出第一个

NO 1 Defect = 
VAR MaxDefectValue = MAX('Camera Data'[Value])
RETURN
    SELECTCOLUMNS(
        TOPN(1, 
             FILTER('Camera Data', 'Camera Data'[Value] = MaxDefectValue),
             'Camera Data'[Attribute], ASC  -- 这里可以改排序规则,比如要按原始顺序就换个行号类字段
        ),
        "FirstDefect", 'Camera Data'[Attribute]
    )
  • 先定义变量MaxDefectValue存储最大值,避免重复计算提升效率
  • 用FILTER把所有值等于最大值的行筛选出来
  • TOPN(1, ...)从筛选结果里挑第一行,后面的排序规则可以按需调整:比如按分类名称升序,或者数据源的原始录入顺序
  • 最后用SELECTCOLUMNS提取出对应的分类值

方法2:用CALCULATE+FIRSTNONBLANK更简洁

NO 1 Defect = 
VAR MaxDefectValue = MAX('Camera Data'[Value])
RETURN
    CALCULATE(
        FIRSTNONBLANK('Camera Data'[Attribute], 1),
        'Camera Data'[Value] = MaxDefectValue
    )
  • 同样先获取最大值
  • CALCULATE帮我们限定上下文:只关注值等于最大值的那些行
  • FIRSTNONBLANK直接返回这些行里第一个非空的分类值,逻辑简单又高效

效果验证

把上面任意一个公式替换你原来的NO 1 Defect度量值,再放到卡片视觉对象中:

  • 单个最大值的场景下,和原公式效果完全一致
  • 多个相同最大值的场景下,会按你指定的顺序返回首个分类

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:42:56