列出Excel中表格的前5个项目

我试图在Excel中使用LARGE函数,但是当我有多个结果具有相同的数字,它返回相同的结果两次或更多。 我想要它做的是移动到列表中的下一个项目。 这里是一个例子:

=INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],1),Movies[Rating If Genres],0)) =INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],1),Movies[Rating If Genres],0)) =INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],2),Movies[Rating If Genres],0)) =INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],2),Movies[Rating If Genres],0)) =INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],3),Movies[Rating If Genres],0)) =INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],3),Movies[Rating If Genres],0)) =INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],4),Movies[Rating If Genres],0)) =INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],4),Movies[Rating If Genres],0)) =INDEX(Movies[Title],MATCH(LARGE(Movies[Rating If Genres],5),Movies[Rating If Genres],0)) =INDEX(Movies[Rating],MATCH(LARGE(Movies[Rating If Genres],5),Movies[Rating If Genres],0)) 

这产生:

  Title | Rating --------------------------|--------- Alien | 8.5 Blade | 7.0 >30 Days of Night | 6.6 >30 Days of Night | 6.6 Blade: House of Chthon | 6.5 

这一张同样的电影两次(30天的夜晚),其中一个应该是刀片II,因为它也有6.6的评级。

所以我所做的是如果我指定的stream派在电影的stream派(如果stream派的评级)匹配,我将评级存储在表中的一列中。 之后,我从这个榜单中选出最高的types。

我该怎么做才能显示Blade II的LARGEfunction,而不是显示30 Days of Night两次?

在你的“top 5”表中,假设第一个评级(在你的例子中是8.5)在B2中,那么在A2中试试这个数组公式

=INDEX(Movies[Title],SMALL(IF(Movies[Rating If Genres]=B2,ROW(Movies[Rating If Genres])-MIN(ROW(Movies[Rating If Genres]))+1),COUNTIF(B$2:B2,B2)))

用CTRL + SHIFT + ENTER确认并复制下来

即使在评级中重复,这也将检索正确的标题

编辑:或者这个非数组版本……

=INDEX(Movies[Title],MATCH(1,INDEX((Movies[Rating If Genres]=B2)*(COUNTIF(A$1:A1,Movies[Title])=0),0),0))

做一个帮手列的评级。

如果评分在列A中,则在帮助列的第一个单元中的公式(复制下来)

 =IF(COUNTIF($A:$A;$A5)>1;$A5+ROW($A5)*0.000001;$A5) 

根据行数(即总是不同的)增加了相等的排名,这将永远不会达到下一个排名。 将LARGE应用于列将初始等于条目。

例如,3次4.8将成为4.800002,4.80005,4.802。

更简单的方法是:将行号除以足够大的数字,以便所有条目:如果它们的准确性是0.1,为所有条目添加一个小数目将使它们唯一。 取舍最后的结果将使他们再次平等。