如果条件匹配的范围在Google表格中包含重复项,如何在不跳过的情况下获得密集排名

问题描述 投票:0回答:1

我现在正在研究 Google Sheet,我自己无法解决这个问题。我尝试过许多函数,例如 IF(COUNTIF(....)) 来查找唯一值和 SUMPRODUCT() 来进行密集排名,但所有这些都不能给我真正想要的东西。我希望你们能帮我解决这个问题。

我的工作表包含一些重复的值,如下所示:

我想做这样的密集排名:

如何在 Google 表格中执行此操作?

这里是 Google 表格的链接:链接

请帮我解决这个问题。 预先感谢您。

google-sheets duplicates dense-rank
1个回答
0
投票

这是一个可能的解决方案:

=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
,可以轻松反转排名顺序。

© www.soinside.com 2019 - 2024. All rights reserved.