带重复项的 Excel 排名

带重复项的 Excel 排名

我想对 Excel 中的一列数据进行排序。我需要根据此排序对其他一些列进行排序,因此我想根据列中每个成员的值对其进行排序,这样我就可以使用该排序对其他所有列进行排序。

最初我使用了 RANK(),但这不能解决重复值的问题,它们看起来会一样,而我需要唯一的值才能达到我的目的。经过一番搜索,我找到了这个公式,可以将其添加到之前使用过的每个排名中:

=RANK(A1,$A$1:$A$100,1)+COUNTIF($A$1:A1,A1)-1

网上有几个网站声称可以给我我想要的排名,但最终我得到的排名有些未使用,还有些重复值。以下是此问题的一个示例,A 列是原始数据,B 列在 B1 中有上述公式,并被拖到 B100。

1   1
2   2
3   4
4   6
5   10
6   11
7   14
8   15
9   18
10  21
10.95210824 23
11.90421647 24
12.85632471 28
13.80843294 29
14.76054118 31
15.71264941 34
16.66475765 37
17.61686588 38
18.56897412 41
19.52108235 42
20.338495   46
21.15590765 48
2   3
4   7
6   12
8   16
10  22
12  25
14  30
16  35
18  39
20  44
21.90421647 49
23.80843294 50
25.71264941 54
27.61686588 56
29.52108235 58
31.42529882 61
33.3295153  64
35.23373177 66
37.13794824 69
39.04216471 71
40.67699    74
42.3118153  76
3   5
6   13
9   19
12  26
15  33
18  40
21  47
24  51
27  55
30  60
32.85632471 63
35.71264941 67
38.56897412 70
41.42529882 75
44.28162353 78
47.13794824 80
49.99427294 82
52.85059765 85
55.70692236 88
58.56324706 89
61.015485   92
63.46772295 94
4   8
8   17
12  27
16  36
20  45
24  52
28  57
32  62
36  68
40  73
43.80843294 77
47.61686588 81
51.42529882 84
55.23373177 87
59.04216471 90
62.85059765 93
66.65903059 95
70.46746353 96
74.27589647 97
78.08432942 98
81.35398001 99
84.62363059 100
5   10
10  22
15  33
20  45
25  53
30  60
35  65
40  73
45  79
50  83
54.76054118 86
59.52108235 91

未出现的排名:9、20、32、43、59、72

出现两次的排名:10,22,33,45,60,73

有谁知道为什么会发生这种情况或有更好的排名方程式吗?

答案1

考虑消除冲突的关系排名。在B1进入:

=A1

B2进入:

=A2+0.00001*(COUNTIF($A$1:A2,A2)-1)

并向下复制。然后在C1进入:

=RANK(B1,$B$1:$B$100,1)

在此处输入图片描述

笔记:

列中的每个值只出现一次。
列中的排名C是连续的,没有重复,也没有缺失。

答案2

尝试在 B 列中使用它,粘贴到B1,输入公式并向下拖动。

=IF(A1=0,"",RANK(A1,IF(A:A>0,A:A,1),0)+COUNTIF($A$1:$A1,$A1)-2)

不太确定它是如何工作的,但它对我的数据集有用。

相关内容