我现在正在研究 Google Sheet,我自己无法解决这个问题。我尝试过许多函数,例如 IF(COUNTIF(....)) 来查找唯一值和 SUMPRODUCT() 来进行密集排名,但所有这些都不能给我真正想要的东西。我希望你们能帮我解决这个问题。
我的工作表包含一些重复的值,如下所示:
我想做这样的密集排名:
如何在 Google 表格中执行此操作?
这里是 Google 表格的链接:链接
请帮我解决这个问题。 预先感谢您。
这是一个可能的解决方案:
=ARRAYFORMULA(
LET(class,A2:A,
round,C2:C,
score,D2:D,
ranks,IFNA(
BYCOL(
{".",REGEXREPLACE(F1:I1,"(?s)Class (\w+)|(\w+) Round|.","$1$2")},
LAMBDA(header,
LET(score_,IF(REGEXMATCH(class&round,header),score,),
XMATCH(score_,SORT(UNIQUE(score_),1,FALSE)))))),
FILTER(ranks,class<>"")))
此公式在单元格
E2
中输入,并使用标题 F1:I1
作为要考虑的类别/回合的参考,生成整个表格的结果。
它本质上是对唯一分数进行排序并使用 XMATCH 返回排名。通过将
FALSE
(在 SORT 函数内)更改为 TRUE
,可以轻松反转排名顺序。