从多个工作表中找到最常见的最大值和第二个最大值

时间:2018-07-21 20:19:42

标签: excel google-sheets excel-formula spreadsheet vlookup

说我有3张结构相同的纸

第1季

A   B       C
--------------- 
Pos Team    Pts
1   Team A  27
2   Team C  23
3   Team B  21
4   Team D  19
5   Team E  12

第2季

A   B       C
--------------- 
Pos Team    Pts
1   Team B  24
2   Team A  20
3   Team D  19
4   Team E  17
5   Team C  15

第3季

A   B       C
--------------- 
Pos Team    Pts
1   Team A  26
2   Team C  22
3   Team B  21
4   Team D  18
5   Team E  14

我想找到最常见的第一名(最高分)。在此示例中,它将是Team A,因为他们两次获得第一名,而Team B仅获得一次第一名。然后,我想找到排名第二的最常见的团队,在这个示例中,他们是Team C,因为他们两次获得第二名。

解决这个问题的最佳方法是什么?我已经走了这么远,要让团队在每个工作表中名列第一,但是我不确定如何使用每个工作表的结果来获得所有工作表中最常见的一个...

=INDEX('Season 1'!B2:C6,MATCH(SMALL('Season 1'!A2:A6,1),'Season 1'!A2:A6,0))

公式返回Team A

2 个答案:

答案 0 :(得分:2)

=SORTN(QUERY({'Season 1'!A2:C6;'Season 2'!A2:C6;'Season 3'!A2:C6},"Select Col1,Col2,count(Col1) group by Col1,Col2 order by Col1,count(Col1) desc"),2^9,2,1,1)
  • QUERY()以降序获取计数/每个团队/位置。
  • SORTN删除重复项

答案 1 :(得分:0)

首先,它将自动处理您拥有的所有工作表(作为数组公式输入):

=INDEX('Season 1'!$B$2:$B$6,TRANSPOSE(MODE.MULT(IFERROR(IF(COUNTIF(INDIRECT("'Season "&TRANSPOSE(ROW(INDIRECT("1:"&SHEETS())))&"'!B"&ROW('Season 1'!B2)),'Season 1'!$B$2:$B$6)>0,ROW('Season 1'!$B$2:$B$6)),FALSE)))-ROW('Season 1'!$B$1))

填写第二,第三等。如果有平局,则在输入公式以提供所有平局时可以选择多个单元格(水平)。

这将计算并列第一名的人数: =SUM(--(MODE.MULT(IFERROR(IF(COUNTIF(INDIRECT("'Season "&TRANSPOSE(ROW(INDIRECT("1:"&SHEETS())))&"'!B"&ROW('Season 1'!B2)),'Season 1'!$B$2:$B$6)>0,ROW('Season 1'!$B$2:$B$6)),FALSE))>0))

再次,填写第二,第三...