如何在 Excel 中按两个标准对项目进行排名

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

1) 复制以下值并粘贴到 Excel 工作表中的 A1:E9 单元格中。

玩家 积分 助攻 首先对 B 列进行排序,然后对 C 列进行排序 仅 B 列的唯一排名
安迪 10 8 =RANK.EQ($B2,$B$2:$B$9)+COUNTIFS($B$2:$B$9,$B2,$C$2:$C$9,">"&$C2) =RANK.EQ($B2,$B$2:$B$9)+COUNTIFS($B$2:B2,B2)-1
伯纳德 10 2 =RANK.EQ($B3,$B$2:$B$9)+COUNTIFS($B$2:$B$9,$B3,$C$2:$C$9,">"&$C3) =RANK.EQ($B3,$B$2:$B$9)+COUNTIFS($B$2:B3,B3)-1
卡尔 6 4 =RANK.EQ($B4,$B$2:$B$9)+COUNTIFS($B$2:$B$9,$B4,$C$2:$C$9,">"&$C4) =RANK.EQ($B4,$B$2:$B$9)+COUNTIFS($B$2:B4,B4)-1
德里克 6 3 =RANK.EQ($B5,$B$2:$B$9)+COUNTIFS($B$2:$B$9,$B5,$C$2:$C$9,">"&$C5) =RANK.EQ($B5,$B$2:$B$9)+COUNTIFS($B$2:B5,B5)-1
艾琳 8 6 =RANK.EQ($B6,$B$2:$B$9)+COUNTIFS($B$2:$B$9,$B6,$C$2:$C$9,">"&$C6) =RANK.EQ($B6,$B$2:$B$9)+COUNTIFS($B$2:B6,B6)-1
弗兰克 8 6 =RANK.EQ($B7,$B$2:$B$9)+COUNTIFS($B$2:$B$9,$B7;$C$2:$C$9,">"&$C7) =RANK.EQ($B7,$B$2:$B$9)+COUNTIFS($B$2:B7,B7)-1
格雷格 3 6 =RANK.EQ($B8,$B$2:$B$9)+COUNTIFS($B$2:$B$9,$B8,$C$2:$C$9,">"&$C8) =RANK.EQ($B8,$B$2:$B$9)+COUNTIFS($B$2:B8,B8)-1
哈利 2 9 =RANK.EQ($B9,$B$2:$B$9)+COUNTIFS($B$2:$B$9,$B9,$C$2:$C$9,">"&$C9) =RANK.EQ($B9,$B$2:$B$9)+COUNTIFS($B$2:B9,B9)-1

2) 请看下面的图片。

This is the picture.

3) 我的问题的解释在这里:

D 列中的公式首先排列B,然后排列C

D 列中的公式对重复项进行排名。

数字 4 不存在于 D 列中,因为 ErinFrank 的值相等。

E 列中的公式排名仅 B 列

E 列中的公式不会对重复项进行排名。

数字 4 存在于 E 列中,因为 E 列中的公式不会对重复项进行排名。

我更喜欢在 E 列中使用公式,因为 E 列中的公式不会对重复项进行排名。

4) 我的问题在这里:

请改进E列中的公式,该公式应该首先排名B列,然后是C列

  • 请注意,我是 Excel 2013 用户。
excel excel-formula excel-2013 ranking rank
3个回答
1
投票

公式位于单元格 D25 中

=RANK.EQ($B25,$B$25:$B$32)+COUNTIFS($B$25:$B$32,$B25,$C$25:$C$32,">"&$C25)+COUNTIFS(B$24:B24,B25,C$24:C24,C25)

由于它在表格上方占据一行,因此表格无法从第 1 行开始。如果有标题,则它会工作并返回以下结果:

enter image description here


1
投票

对于早期版本的 Excel:

=RANK(B9, $B$2:$B$9) + COUNTIF($B$2:B9, B9) - 1 + (C9 / 100)

您必须格式化数字以不显示小数点。

enter image description here

如果您有 Excel 365,您可以使用:

=SORTBY(SEQUENCE(ROWS(B2:B9)), -(B2:B9 + C2:C9/100))

enter image description here


1
投票

抱歉,无法想出更短的公式,但你可以尝试一下:

  • 假设
    0
    不在 Assists
  • 的值中
  • 对于二次排序,将 Assists 中的单元格与
    中的排序数组进行匹配
    (B2=$B$2:$B$9) * $C$2:$C$9
  • 输入
    F2
    并向下填写(可能需要使用 Control+Shift+Enter 输入 a)
=RANK.EQ($B2,$B$2:$B$9)
+MATCH(C2,LARGE((B2=$B$2:$B$9) * $C$2:$C$9,ROW($C$2:$C$9) - ROW($C$1)),0) - 1
+COUNTIFS($B$2:$B2,$B2,$C$2:$C2,$C2) - 1

临时步骤:

Interim steps

与使用

SORTBY
的结果进行比较:

Result

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