有重复时的排名

时间:2017-08-24 04:15:24

标签: excel excel-formula

如何连续返回每个值的排名,即使是重复的情况?请参阅下面的示例。

虽然在排名中处理重复值时已经回答了许多问题,但我在实现适用于我所有情况的方法方面做得不够。

编辑:上面的图片是一个不能解决我的问题的坏例子。这是行为的新图片。

enter image description here

在某些情况下,当排名应该只有1:6时,它会跳到7。在其他情况下,它似乎工作,然后在类似情况下不起作用。数据是:

2.61879723030607    2.3428  2.61879723030607    2.4571  2.7324  2.1790
2.97203355745108    2.5355  2.97203355745108    2.6721  3.0561  2.4136
2.4895  2.2781  2.6218  2.4369  2.6898  2.1361
2.32650000000000    2.2124  2.3453  2.32650000000000    2.3938  2.0283
2.34132608128450    2.1331  2.34132608128450    2.2800  2.5758  2.0446
2.58668483692925    2.1476  2.58668483692925    2.3019  2.5124  2.0135
2.2555  2.0884  2.3368  2.0980  2.3928  1.9787
2.32878217762168    2.1080  2.32878217762168    2.1250  2.5360  1.9807
2.50891263421977    2.2480  2.50891263421977    2.4239  2.9070  2.2638
2.97755287506272    2.4457  2.97755287506272    2.6830  3.0566  2.3987
3.0850  2.5380  5.3880  2.8304  3.1579  2.5030
3.0120  2.3815  3.0639  2.6762  3.0831  2.4253
2.49235468138485    2.1436  2.49235468138485    2.3159  2.5542  1.9991
2.13109025589563    2.1060  2.13109025589563    2.1555  2.3225  1.9787
2.24900295032614    2.0332  2.24900295032614    2.1780  2.5084  2.0043
2.4010  2.0438  2.5857  2.2126  2.4511  2.0329

EDIT2:实施RANK代替RANK.EQ显示无差异:

enter image description here

3 个答案:

答案 0 :(得分:0)

请尝试使用RANK代替RANK.EQ,如下所示。虽然我不确定这是否可行,因为我在Excel 07上进行测试。

Cell H1

中输入以下公式
=RANK(A1,$A1:$F1,1)+COUNTIF($A1:A1,A1)-1

根据需要复制/拖动公式并跨越(向右)。见图片以供参考。

enter image description here

根据RANK.EQ function here

上的Microsoft文档
  

RANK.EQ给出重复的数字相同的排名。但是,重复数字的存在会影响后续数字的排名。例如,在按升序排序的整数列表中,如果数字10出现两次并且排名为5,那么11将具有等级7(没有数字将具有等级6)

答案 1 :(得分:0)

我认为你的设置中有错误。我的理解是每一行都是一个单独的独立案例,但是你的计算等级的公式有固定的行和列引用,当它应该只有固定的列引用时。现在,根据数据的第一行找到每个值的排名。而不是:

=RANK.EQ(B4,$B$4:$G$4,1)

应该是:

=RANK.EQ(B4,$B4:$G4,1)

然后在第2和第3个块中改变你的结果,你应该在第3个块中获得所需的结果。

答案 2 :(得分:0)

使用单元格B2:B4 中的公式,您可以过滤 A列中的唯一数字。 请注意,这是数组公式,因此输入后,您必须对其进行标记,然后按CTRL + ALT + DEL。希望这能解决你的问题。有关此公式的更多详细信息,您也可以在此处找到https://exceljet.net/formula/extract-unique-items-from-a-list

Column A     Column B
    1
    1         1 = {=INDEX($A$1:$A$5000,MATCH(0,COUNTIF($B$1:B1,$A$1:$A$5000),0))}
    1         2 = {=INDEX($A$1:$A$5000,MATCH(0,COUNTIF($B$1:B2,$A$1:$A$5000),0))}
    1         6 = {=INDEX($A$1:$A$5000,MATCH(0,COUNTIF($B$1:B3,$A$1:$A$5000),0))}
    1
    1
    1
    1
    1
    1
    1
    2
    1
    6
    6
    6
    6
    6
    6
    6
    6
    6
    6
    6
    6
    6