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

Power BI中如何获取两列数值中的最小值对应记录

Power BI中如何获取两列数值中的最小值对应记录

嗨,我来帮你搞定这个需求!你想要从Maths和Physics两列里找出全局最低分对应的学生,并且在卡片上显示“Emma 32.5”或者只显示“Emma”对吧?咱们用DAX来实现这个效果,比你之前尝试的单列方法更适配两列的场景~

步骤1:计算全局最低分

首先创建一个度量值,用来找出所有学生两科成绩里的最小值:

全局最低分 = MINX('results', MIN('results'[Maths], 'results'[Physics]))

这个公式的逻辑是:用MINX遍历表中的每一行,先算出每个学生自己两科成绩里的最低分,再从所有学生的这个最低分里取最小的那个,也就是你要的全局最低分(例子里就是32.5)。

步骤2:获取对应学生及分数

再创建另一个度量值,把最低分和对应的学生关联起来:

对应学生及分数 = 
VAR MinScore = [全局最低分]
RETURN
CALCULATE(
    MAX('results'[Name]) & " " & MinScore,
    FILTER(
        'results',
        MIN('results'[Maths], 'results'[Physics]) = MinScore
    )
)

这里的逻辑是:

  1. 先把全局最低分存到变量MinScore里;
  2. 用FILTER筛选出“两科最低分等于全局最低分”的行;
  3. 最后把筛选到的学生名字和最低分拼接起来,显示成类似“Emma 32.5”的格式。

如果只想要显示学生名字,把公式里的MAX('results'[Name]) & " " & MinScore改成MAX('results'[Name])就好啦。

补充说明

如果遇到多个学生有相同的全局最低分,上面的公式会用MAX取名字首字母靠后的那个。要是想显示所有符合条件的学生,可以把MAX换成CONCATENATEX,比如:

对应学生及分数 = 
VAR MinScore = [全局最低分]
RETURN
CALCULATE(
    CONCATENATEX('results', 'results'[Name] & " " & MinScore, ", "),
    FILTER(
        'results',
        MIN('results'[Maths], 'results'[Physics]) = MinScore
    )
)

这样就能用逗号分隔显示多个学生啦。

备注:内容来源于stack exchange,提问作者user22999077

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 08:42:59