在EXCEL里有多个排名条件的时候怎么用函数进行排名

2024年11月19日 01:31
有5个网友回答
网友(1):

这个问题可以用权重分析法来解决

在Excel中应该有一个Percentrank函数,这个函数可以给出一个数据在其数据组中的排名,基本的想法是首先分别计算每个学生的不及格科目、平均分以及语文成绩的排名情况,然后采用加权相加,就能得出每个学生的排名分

具体的做法是,首先用Percentrank函数,例如计算语文成绩的排名分,公式为:
=PERCENTRANK($C$2:$C$38,C2) 语文成绩位于C列
同样可以计算平均成绩的排名分以及不及格科目数的排名分,不过对于不及格科目,因为是升序排列的,需要处理成降序排列,可以用公式: =3-H2 来解决

算出三列成绩的所有排名分后,根据排序原则,最终的排名分等于排名分1×3+排名分2×2+排名分3

计算表格如下:
座号 姓名 语文 数学 英语 平均分 名次 不及格 不及格降序 排名分1 排名分2 排名分3 最终排名分
1 陈雅良 100 81 97 92.67 1 0 100 0.638 1 1 4.914
4 陈美龄 98 71 93 87.33 2 0 100 0.638 0.972 0.944 4.802
5 张安娜 99 69 91 86.33 3 0 100 0.638 0.944 0.972 4.774
2 张白玉 97 71 87 85 5 0 100 0.638 0.888 0.916 4.606
18 蒙妮 95 69 91 85 4 0 100 0.638 0.888 0.777 4.467
6 韩丽玲 96 66 87 83 6 0 100 0.638 0.861 0.833 4.469
9 潘欣妮 96 66 78 80 8 0 100 0.638 0.805 0.833 4.357
8 巴里娜 94 66 80 80 7 0 100 0.638 0.805 0.75 4.274
7 曾安妮 88 79 72 79.67 9 0 100 0.638 0.777 0.666 4.134
3 陈雅兰 96 73 64 77.67 10 0 100 0.638 0.75 0.833 4.247
16 黄秀娴 86 63 80 76.33 11 0 100 0.638 0.722 0.583 3.941
11 马努兴 88 69 65 74 12 0 100 0.638 0.694 0.666 3.968
12 陈兴利 86 66 63 71.67 13 0 100 0.638 0.666 0.583 3.829
30 杨凤仙 68 61 66 65 14 0 100 0.638 0.555 0.416 3.44
23 曾繁进 87 75 49 70.33 15 1 66.6 0.444 0.638 0.638 3.246
26 娣帕宋 95 63 45 67.67 16 1 66.6 0.444 0.611 0.777 3.331
37 刘惠珍 92 39 68 66.33 21 1 66.6 0.444 0.583 0.722 3.22
33 刘国华 81 60 50 63.67 17 1 66.6 0.444 0.527 0.527 2.913
28 胡天丽 74 65 50 63 18 1 66.6 0.444 0.5 0.444 2.776
10 吴美玉 74 61 42 59 19 1 66.6 0.444 0.472 0.444 2.72
20 胡美英 66 60 28 51.33 20 1 66.6 0.444 0.333 0.388 2.386
31 许为忠 59 69 48 58.67 22 2 33.3 0.166 0.444 0.277 1.663
14 陈强 82 33 54 56.33 24 2 33.3 0.166 0.388 0.555 1.829
24 付圣财 57 65 47 56.33 23 2 33.3 0.166 0.388 0.194 1.468
13 沙特维 59 68 38 55 25 2 33.3 0.166 0.361 0.277 1.497
17 努沙娜 77 33 35 48.33 27 2 33.3 0.166 0.25 0.5 1.498
19 翁佩玲 60 58 27 48.33 26 2 33.3 0.166 0.25 0.333 1.331
32 佘桂龙 31 45 68 48 28 2 33.3 0.166 0.222 0.027 0.969
15 潘巴色 42 33 66 47 29 2 33.3 0.166 0.194 0.111 0.997
34 付圣耀 33 62 26 40.33 30 2 33.3 0.166 0.111 0.083 0.803
22 包文健 64 30 20 38 31 2 33.3 0.166 0.027 0.361 0.913
29 陈明明 57 36 55 49.33 32 3 0 0 0.305 0.194 0.804
25 黄盛财 58 33 49 46.67 33 3 0 0 0.166 0.25 0.582
27 郭美丽 43 44 37 41.33 34 3 0 0 0.138 0.138 0.414
21 陈起荣 31 35 52 39.33 35 3 0 0 0.083 0.027 0.193
36 龙小英 43 44 30 39 36 3 0 0 0.055 0.138 0.248
35 陈健平 26 51 34 37 37 3 0 0 0 0 0

根据计算出来的最终排名分,从高到低排列就是每个学生的最终排名

网友(2):

=if(isblank(a1),0,rank(a1,a:a))
排除空格可以用if吧
为了避免空值,平均分建议不要用average(),可以用(column()-2)/sum(b2:f2)

网友(3):

用排序就可以了,设置主要和次要条件,就可以了

网友(4):

还是用排序吧,用函数是舍近求远

网友(5):

LARGE函数