用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。