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

Power Query中多列分组并在组内排名的实现方法

在Power Query里实现分组内多字段排名

以下是具体操作步骤,满足你在独立分组内按指定字段排名、方便后续筛选前N值的需求:

1. 把数据导入Power Query编辑器

  • Excel:点击「数据」选项卡→「从表格/范围」,选中原始表格导入
  • Power BI:点击「获取数据」,选择对应数据源加载数据到Power Query

2. 按分组字段进行分组

选中GroupField1和GroupField2两列,点击「转换」选项卡→「分组依据」:

  • 切换到「高级」模式,设置:
    • 新列名:自定义名称(比如分组数据)
    • 操作:选择「所有行」
    • 列:留空(保留分组内的所有原始数据)
      点击确定后,表格会按分组字段聚合,每个分组对应一行包含该组所有数据的记录。

3. 给分组内的数据添加排名列

接下来为每个分组里的数据单独生成Rank1和Rank2:

  1. 点击「添加列」选项卡→「自定义列」,在公式框输入:
Table.AddRankColumn([分组数据], "Rank1", {"RankField1", Order.Descending}, RankKind.Competition)

这个公式按RankField1降序给分组内数据排名,相同值并列且后续排名跳号(例如两个第2名,下一个是第4名)。

  1. 再添加一个自定义列计算Rank2:
Table.AddRankColumn([分组数据], "Rank2", {"RankField2", Order.Descending}, RankKind.Competition)

排名规则可选:

  • RankKind.Dense:并列排名不跳号(两个第2名,下一个是第3名)
  • RankKind.Unique:相同值按行顺序分配唯一排名

4. 整理成最终表格

  • 点击两个自定义列右侧的展开箭头,勾选所有需要保留的字段(原始字段+Rank1+Rank2)
  • 删除中间生成的分组数据列,调整列的顺序到需求格式

最终结果示例(分组内排名)

按上述步骤处理后,得到的表格如下(采用RankKind.Competition规则):

GroupField1GroupField2RankField1RankField2OtherFieldRank1Rank2
YA2510data11
YA2010data21
XB3012data11
XB1510data22
ZQ55data11

若需要全局排名(而非分组内),直接跳过分组步骤,对整个原始表格使用Table.AddRankColumn公式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:27:29