Excel 利用秩函数打破僵局
我有一份学生成绩表,我计算了学生的总成绩。接下来,我想根据总数对它们进行排序,无论重复到哪里,在数学方面获得更多数字的学生(E9:E58)都将被优先考虑 如何做到这一点 我的总成绩是从U9到U58,数学成绩是从d9到d58 我使用了这个公式: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列。它们仅用于更好地查看调整
=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