【问题标题】:Google Sheets: Dense Ranking from sorted valuesGoogle表格:排序值的密集排名
【发布时间】:2018-03-29 23:15:22
【问题描述】:

我有一个包含 3 列的简单表格:

[姓名] [分数] [排名]

对于第 3 列,我使用以下公式根据分数对每一行进行排名:

=RANK(C9,$C$9:$C$28,0)

问题是公式没有返回我期望的值。例如,在最后一行它应该是 5 时返回 19。

我找到了其他排名公式(RANK.EQ 等),但同样的问题发生了。

这是在上下文中查看的 Google 表格:

https://docs.google.com/spreadsheets/d/1P1m7UHPPIcQLQkzpnk-SI1y7-0mhKytCWDjA6FJzFrM/edit?usp=sharing

任何指导表示赞赏

【问题讨论】:

    标签: google-sheets formulas


    【解决方案1】:

    你想要的结果可以通过一个简单的 MATCH 公式来实现:

    =match(round(C9,0),NamedRange1,0)
    

    如果创建了一个数组(上面的命名为 NamedRange1),比如:

    =sort(unique(round(C9:C28,0)),1,0)
    

    【讨论】:

    • 谢谢 - 我试过了,但我遇到了一些错误(请参阅上面原始问题描述中的链接表)......我想这可能是由于数组显示小数和原始范围的四舍五入?我不确定.....
    • 我明白了。我在文档中修复了它。
    【解决方案2】:

    我认为结果符合预期。检查此Ranking 维基百科页面(称为“标准竞争排名”)。它说:

    标准比赛排名(“1224”排名)

    在竞争排名中,比较相等的项目获得相同的 排名数字,然后排名数字留下一个差距。这 在这个差距中被遗漏的排名数字的数量减少了一个 比比较相等的项目数。等效地,每个 item 的排名数是 1 加上排名在它上面的项目数。 这种排名策略经常被用于比赛,因为它 意味着如果两个(或更多)竞争者在 排名,所有排名低于他们的人的位置不受影响 (即,只有一个人得分时,竞争对手才能获得第二名 比他们好,如果恰好有两个人得分比他们高,则排名第三, 第四,如果恰好三个人得分比他们高,等等)。

    因此,如果 A 排在 B 和 C(比较相等)之前,两者都是 排在 D 前面,然后 A 获得排名第一(“第一”),B 获得 排名第 2(“并列第二”),C 也获得排名第 2 (“并列第二”)和 D 获得排名第 4(“第四”)。

    你想要的是“密集排名”,它可以通过 pnuts 的回答或类似的东西来实现:

    1. G9 设置为1
    2. G10 设置为=if(round(C10,0)<round(C9,0), G9+1, G9)
    3. 复制G10并粘贴到G11:G28

    样本表是here

    【讨论】:

    • 谢谢,我不知道“密集排名”。是的,这正是我想要的(我很惊讶没有这样的公式)。我看到你做了什么。我正在尝试 pnut 的解决方案,但遇到了问题(我将您的解决方案和 pnuts 的解决方案都添加到了上面链接的原始工作表中)。如果可能的话,我更喜欢对所有行使用相同的公式。干杯
    • 如果你喜欢一个公式,你可以将G9设置为=iferror(if(round(C9,0)<round(C8,0), G8+1, G8),1)等等,假设C8的值不小于C9
    • 感谢桑博克!我在文档中修复了它。 @pnuts 好点-但我确实喜欢您的公式不需要对列表进行排序的事实。我创建了您的方法的一个变体,它将数组嵌入到单个公式中。
    【解决方案3】:

    感谢@pnuts 和@sangboklee 提供的解决方案。我想我现在有一个很好的解决方案。这是pnuts的解决方案,只是简化了:

    =match(round($C9,0),sort(unique(round($C$9:$C$28,0)),1,false),0)
    

    这实质上是将创建的数组“嵌入”在一个公式中,该公式可应用于所有行。作为奖励,甚至不必对值进行排序。

    请检查正确性,但我认为这可行。我已根据原始问题描述(它是“解决方案 2b”)更新了链接的 Google 表格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 2020-04-18
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      相关资源
      最近更新 更多