excel按指定列分组排名

558 阅读1分钟

在 Excel 中,你可以使用 RANK, COUNTIF, 或 SUMPRODUCT 等函数来计算指定列在指定分组下的排名。常见的方法如下:


方法 1:使用 RANK + IF(适用于 Excel 365 / 2019+ 版本)

如果你的 Excel 版本支持动态数组,可以使用 RANK 结合 IF 计算分组内排名。

示例

假设你的数据如下:

A列(分组)B列(数值)C列(排名)
A80
A90
A85
B75
B95
B85

你希望在 C 列计算 B 列在 A 列分组中的排名。

C2 中输入以下公式:

=RANK.EQ(B2, FILTER(B$2:B$7, A$2:A$7=A2))

然后向下填充公式。

解释

  • FILTER(B$2:B$7, A$2:A$7=A2):筛选出与 A2 组相同的所有 B 列值。
  • RANK.EQ(B2, …):计算 B2 在该分组中的排名。

方法 2:使用 SUMPRODUCT(适用于所有 Excel 版本)

如果你的 Excel 版本较旧(如 Excel 2016 或更早),可以使用 SUMPRODUCT 实现。

C2 输入:

=SUMPRODUCT((A$2:A$7=A2)*(B$2:B$7>B2))+1

然后向下填充。

解释

  • (A$2:A$7=A2):筛选出当前行所属的分组。
  • (B$2:B$7>B2):计算当前行的值大于其他同行的数量。
  • SUMPRODUCT(...) + 1:统计比当前值大的个数并加 1,即排名。

方法 3:使用 COUNTIFS(适用于所有 Excel 版本)

C2 输入:

=COUNTIFS(A$2:A$7, A2, B$2:B$7, ">"&B2) + 1

然后向下填充。

解释

  • COUNTIFS(A$2:A$7, A2, B$2:B$7, ">"&B2):计算当前分组中比 B2 更大的数量。
  • +1:得到排名。

这几种方法都可以实现分组内排名,你可以根据自己的 Excel 版本选择合适的方法。