excel - 使用基于动态相邻列值的 excel rank 函数

标签 excel vba rank

认为;
我有下表:

Group   Nam ID  Score    Rank
London  B   1   88
London  C   2   7
London  A   3   45
London  D   4   23
London  E   5   2
London  F   6   56
Sydney  C   1   7
Sydney  B   2   98
Sydney  A   3   12
Tokyo   R   1   45
Tokyo   Z   2   23
Tokyo   A   3   56
Tokyo   G   4   86
Tokyo   E   5   19

我想用公式填充排名列,以便我可以单独获得每个组的排名。我目前使用的公式是排名列的第一行是:
=RANK(D2,$D$2:$D$7,1)

我可以将公式拖到伦敦组的末尾,但对于悉尼组或任何新组,我正在输入一个新公式来定义等级公式的引用范围参数。

有什么简单的方法可以做到这一点吗?这样我就可以将单个公式输入到 Rank 列的第一行并拖动到表格...
我要这样做超过 17000 条记录。
一些规则; group 列是排序的,id 列是 asc 排序的。

谢谢

最佳答案

some rules: group column is sorted, id column is sorted asc.



试试这个公式:
=RANK(D2,INDEX(D:D,MATCH(A2,A:A,0)):INDEX(D:D,MATCH(A2,A:A,0)+COUNTIF(A:A,A2)-1),1)
在哪里 A:A是您的“组”列。

关于excel - 使用基于动态相邻列值的 excel rank 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21504343/

相关文章:

excel - 单独的行分成列

excel - 获取具有另一列过滤范围的唯一列表

vba - SQL Excel VBA 运行时错误 3709 无效连接

r - 在给定日期-30天之内对学生的最新分数进行排名

python - pandas 中的排名数字

R: Rank-function with two variables and ties.method 随机

Excel:找出两个相似列的匹配程度

arrays - 如何使用 VBA 在 JSON 文件中获取多个数组中的所有项目?

Excel VBA循环遍历包含第一个字母M的所有工作表

vba - 循环内的 Application.WorksheetFunction.Sum