Excel 利用秩函数打破僵局

Excel 利用秩函数打破僵局,excel,excel-formula,ms-office,vba,Excel,Excel Formula,Ms Office,Vba,我有一份学生成绩表,我计算了学生的总成绩。接下来,我想根据总数对它们进行排序,无论重复到哪里,在数学方面获得更多数字的学生(E9:E58)都将被优先考虑 如何做到这一点 我的总成绩是从U9到U58,数学成绩是从d9到d58 我使用了这个公式: =Rank(u9,u9:u58,1) 我被困在如何在rank函数中使用if条件中 请帮忙 提前感谢……在这种情况下,一种调整方法是使用SUMPRODUCT功能。您需要根据您的数据范围调整我的示例。在下面的示例中,您不需要E:F列。它们仅用于更好地查看调整

我有一份学生成绩表,我计算了学生的总成绩。接下来,我想根据总数对它们进行排序,无论重复到哪里,在数学方面获得更多数字的学生(E9:E58)都将被优先考虑

如何做到这一点

我的总成绩是从U9到U58,数学成绩是从d9到d58

我使用了这个公式:

=Rank(u9,u9:u58,1)
我被困在如何在rank函数中使用if条件中

请帮忙


提前感谢……

在这种情况下,一种调整方法是使用
SUMPRODUCT
功能。您需要根据您的数据范围调整我的示例。在下面的示例中,您不需要E:F列。它们仅用于更好地查看调整是如何完成的

调整功能: 调整秩函数
这更多的是算术方法。我将添加一个名为“调整后总数”的列

AdjTotal = Total + (Maths Score / Max possible Maths Score) * 0.9
然后使用此调整后的分数列进行排名

该调整将在总数中增加1以下的分数,并有助于在出现1时打破平局。由于调整值永远不会超过0.9,因此在没有平局时不会影响排名

假设数学的最高分数是100,使用这个

V9 = U9 + D9/100*0.9
将V2复制到V59

W9 = RANK(V9, V$9:V$59, 1)

把W9抄下来

假设总分在
U列
中,数学分数在
E列中,
您可以使用Ron的解决方案:

=RANK(U9,U$9:U$58)+SUMPRODUCT((U$9:U$58=U9)*(E$9:E$58<E9))

=RANK(U9,U$9:U$58)+SUMPRODUCT((U$9:U$58=U9)*)(E$9:E$58您可以通过运行通常的
RANK()
方法,然后在与当前行关联的其他行匹配的筛选集上添加
RANK()
方法来完成此操作
平局将从1开始,您需要减去1进行补偿

最终结果如下所示:

=RANK(U9, U$9:U$58, 1) + RANK(D9, FILTER(D$9:D$58, U$9:U$58=U9)) - 1

根据您的数据设置方式,您可能可以使用
RANK
工作表功能,以及
IF
或类似的方法来调用tiebreaker算法。如果遇到问题,请发回您尝试过的内容。请阅读帮助主题,我也希望此编辑有效,请帮助我。您有什么建议你用V2,U2和D2@eshwar来表示
=RANK(U9,U$9:U$58)+SUMPRODUCT((U$9:U$58=U9)*(E$9:E$58<E9))
=RANK(U9, U$9:U$58, 1) + RANK(D9, FILTER(D$9:D$58, U$9:U$58=U9)) - 1