繁体   English   中英

想根据胜场数,场数,然后积分对每个session的球员进行排名

[英]Want to rank players for each session based on number of wins, games, and then points

我想为每个 session 自动决定谁是第一、第二、第三和第四。我希望首先根据比赛获胜的次数来决定,如果比赛相等则比赛获胜,如果比赛相等则得分。 如果一切都相同,则让 2 名球员与 position 相同,并跳过下一名球员(第 1、2、2 和 4)。 突出显示的单元格是我要计算的地方。 有人可以帮我吗?

示例文件: https://docs.google.com/spreadsheets/d/1Ry3BAqXF4Di5lHGlY_roDyzQz7FmTaP1XvhO6Psm4sU/edit#gid=0

我在网上找了一些东西,但没能找到 3 列的公式。

我不认为有一个确切的公式。 显然 SORT 或 SORTN 会正确地对它们进行排序,但不会返回相等的排名。 我想到的是 MAP 对每一列的值进行排名并求和,但是“权重”不同。 *100 到第一个,*10 到第二个,*1 到第三个:

=MAP(B2:B5, C2:C5, D2:D5, LAMBDA(a,b,c,RANK(a,B2:B5)*100+RANK(b,C2:C5)*10+RANK(c,D2:D5)*1))

返回如下内容:

在此处输入图像描述

然后将其包裹在LAMBDA中,作为新的RANKING来源,并借助BYROW进行计算。 但是现在排名需要倒序进行。 较大的值将等于排名底部的值,反之亦然。 这就是RANK(e,r,0)中的 0 的原因:

=LAMBDA(r,BYROW(r,LAMBDA(e,RANK(e,r,0))))(MAP(B2:B5, C2:C5, D2:D5, LAMBDA(a,b,c,RANK(a,B2:B5)*100+RANK(b,C2:C5)*10+RANK(c,D2:D5)*1)))

![在此处输入图片描述

让我知道!

注意:在 9 个玩家之前,这会很好用,如果您或其他任何人需要更多,您应该更改 100,10,1,将玩家数量 + 1 提升到类别的“优先级”。 第一个最高。 例如,对于 15 个玩家,我会将第一个排名乘以:16^3、16^2 和 16^1。 对于 20 个玩家和 4 个类别:21^4,21^3,21^2,21^1 - 希望通用化是明确的!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM