计算列表中的名称,然后计算有多少个,排名,然后在 GoogleSheets 中显示前 5 名

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

我有以下清单

  • 乔恩

  • 詹姆斯

  • 彼得

  • 莉兹

  • 萨布丽娜

  • 詹姆斯

  • 玛丽亚

  • 乔恩

  • 莉兹

  • 莉兹

  • 莎拉

  • ...

然后我想要一个列表来显示每个名称出现的次数。然后它应该给我每个名字的排名,如果排名有联系,我想按字母顺序重新编号。

所以列表应该如下所示:

(A) 姓名 (B) 多久一次 (C) 排名 #
乔恩 2 3
詹姆斯 2 2
彼得 1 5
莉兹 3 1
萨布丽娜 1 6
玛丽亚 1 4
莎拉 1 7

然后在一个单独的列表中,我只想显示前 5 个,按排名排序。

当我从 B 列对它们进行排名时,我总是会得到重复的排名,例如

=ARRAYFORMULA(IF(B2:B<>""; RANK(B2:B; B2:B; 0); ""))
google-sheets
1个回答
0
投票

根据我的下面的屏幕截图,您可以使用以下公式-

=XMATCH(C2,SORT($C$2:$C$8,1,FALSE))+COUNTIFS($C$2:C2,C2)-1
=RANK(C2,$C$2:$C$8,0)+(SUM(INDEX(--($C$2:C2=C2))))-1

或者单元格中的所有公式都在

G2
中。根据需要调整公式。

=LET(x,QUERY(A2:A,"select A, count(A) where A is not null group by A label count(A) ''"),
y,CHOOSECOLS(x,2),
z,MAP(y,SEQUENCE(ROWS(y)),LAMBDA(r,rw,RANK(r,y,0)+(SUM(INDEX(--(QUERY(y,"limit " &rw)=r))))-1)),HSTACK(x,z))

公式截图。 Screenshot

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