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

在Power Query中实现带并列情况的分数排名

在Power Query中实现分数降序并列排名

需求:对分数列按数值从高到低排名,分数并列时给予相同排名(如示例中两个140均排第3位)。

原始数据:

分数B2B4排名
130A2A1
180B3
140A22
130A2A1
200A1
140A22

方法一:通过图形界面操作

  • 把数据导入Power Query:点击Excel的「数据」选项卡→「从表格/区域」
  • 在Power Query编辑器里选中「分数」列
  • 点击「转换」选项卡→「排名」→「密集排名」
  • 此时默认是升序排名(最低分排第1),需要改成降序:
    右键新生成的「排名」列→「编辑公式」,把Order.Ascending替换成Order.Descending,最终公式为:
    Table.AddRankColumn(源, "排名", {"分数", Order.Descending}, [RankKind = RankKind.Dense])
    
  • 确认后就能得到符合要求的排名。

方法二:手动编写M代码

适合熟悉M语言的用户,步骤如下:

  1. 在Power Query编辑器中点击「高级编辑器」
  2. 替换现有代码为以下内容(注意把Table1改成你的实际表名):
let
    源 = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    添加密集排名 = Table.AddRankColumn(源, "排名", {"分数", Order.Descending}, [RankKind = RankKind.Dense])
in
    添加密集排名

参数说明

  • {"分数", Order.Descending}:指定按分数列降序排序,保证最高分排第1
  • [RankKind = RankKind.Dense]:启用密集排名模式,并列分数获得相同排名,后续排名不跳跃(比如两个140排第3,下一个不同分数直接排第4)

最终生成的排名结果:

分数B2B4排名
130A2A14
180B32
140A223
130A2A14
200A11
140A223

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:03:34