用INDEX / MATCHselect前10名

我试图制作一份报告,显示每个月的前10名用户,而且我有点被困在如何让它工作。

我想如何工作,我会select从E1的date和结果填入E4下来。

我试过使用这个公式

=INDEX($B$1:$B$15,MATCH($E$1,$A$1:$A$15&LARGE($B$1:$B$15,D4)*1,2)) 

但是我不确定我做错了什么。

这是我的报告的基本版本。

样品

我假设你想要在你的列表中排名前十的用户。 我认为最简单的解决scheme是使用数据透视表。 创build这样的表的步骤(我使用Excel 2010):

  • 转到插入 – > 数据透视表
  • 报表筛选器设置为date,将行标签设置为用户,将设置为用户计数: 数据透视表
  • 然后点击Excel 行标签旁边的button,然后select数值filter – > 前10名 。 然后select你想要的列的前10名(用户数)。 选择值过滤器。
  • 接下来,再次单击“ 行标签”旁边的button,然后单击“ 更多sorting选项…”
  • 然后select你想如何sorting,我想你想要:按用户数降序。

数据透视表解决scheme是最好的,你可以在我看来。 但是,这是展示数据透视表如此强大的一个很好的可能性。

对于公式解决scheme,我需要三个帮助器列:

在这里输入图像说明

公式:

C2和向下:

 =COUNTIFS(A:A,A2,B:B,B2)+MATCH(B2,B:B,0)/1000 

D2和向下:

 {=SUM(($A$1:$A$100=A2)*($C$1:$C$100>=C2)*(IFERROR(MATCH($C$1:$C$100,$C$1:$C$100,0),0)=ROW($C$1:$C$100)))} 

这是一个数组公式。 把它放到没有花括号的单元格中,然后按[Ctrl] + [Shift] + [Enter]键完成。

E2和向下:

 =A2+D2/1000 

H4和向下:

 =INDEX(B:B,MATCH($H$1+G4/1000,E:E,0)) 

说明:

原则上COUNTIFS不是问题所在。 但是,如果不同的颜色数量相等,那么他们肯定需要排名不同。 所以第一次变得复杂了。

然后排名本身就是一个混乱的项目和条件的多次发生。 我发现唯一的解决方法是使用一个性能非常差的数组公式。

因此,如果有前十名的查询专栏,我已经添加了排名第1000位的date。