简单的等级公式

时间:2010-06-11 20:51:24

标签: math formula rank

我正在寻找一个数学排名公式。

示例

    2008    2009    2010
A   5       6       4
B   6       7       5
C   7       8       2

我想为每个句号代码字段添加一个排名列

                            rank
    2008    2009    2010    2008    2009    2010
B   6       7       5       2       1       1
A   5       6       4       3       2       2
C   7       2       2       1       3       3

请不要使用循环遍历行和列的方法进行回复,随着时间的推移递增排名值,这很容易。我正在寻找一个公式,就像找到总百分比(项目/总数)一样。我知道我以前见过这个,但是很难找到它。

提前致谢!

4 个答案:

答案 0 :(得分:5)

sort((letters_col,number_col)以number_col递减)

与排序alg一样高效。

然后对行进行编号

编辑

我真的对你的评论感到不安“请不要投票这个答案,排序和循环不是我要求的。我在原来的问题中明确说明了这一点。”,和负面投票,因为,你可能已经收到的各种答案,它基本上是正确的。

然而,我一直在思考你之前和之后如何“看过这个”。

嗯,我想我得到了答案:你在Excel中看到了这个。

看看这个:

alt text http://i29.tinypic.com/20qnr14.png

这是输入公式并按列H排序后的结果。

这正是你想要的......

答案 1 :(得分:1)

你在用什么?如果您正在使用Excel,那么您正在寻找RANK(num,ref)。

=RANK(B2,B$2:B$9)

我不知道有任何内置的编程语言,它总是需要某种形式的循环。

答案 2 :(得分:0)

如果你想要单个元素的等级,你可以在O(n)中通过循环遍历元素,计算在给定元素之上有多少值,并添加1来实现。 / p>

如果你想要所有的等级,那么最好的(也是唯一的)方法是对元素进行排序。你做的任何其他事情都等同于排序(没有“公式”)

答案 3 :(得分:0)

您使用的是T-SQL吗? T-SQL RANK()可以拉出你想要的东西。