Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel中列出表格中的前5项_Excel_List_Match_Worksheet Function - Fatal编程技术网

在Excel中列出表格中的前5项

在Excel中列出表格中的前5项,excel,list,match,worksheet-function,Excel,List,Match,Worksheet Function,我试图使用Excel中的大函数,但当我有多个相同数字的结果时,它会返回相同的结果两次或更多次。我希望它做的是转到列表中的下一项。以下是一个例子: =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],

我试图使用Excel中的大函数,但当我有多个相同数字的结果时,它会返回相同的结果两次或更多次。我希望它做的是转到列表中的下一项。以下是一个例子:

=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天的夜晚),其中一部应该是Blade II,因为它的评级也是6.6

因此,我要做的是,如果我指定的类型与电影的类型相匹配,我会将评级存储在表中的一列中(如果是类型,则评级)。在那之后,我从列表中选择了最高的流派


如何使其显示大功能产生的Blade II结果,而不是两次显示30天的夜晚?

制作一个辅助列以显示评级

如果评级在A列中,则公式在辅助列的第一个单元格中(向下复制)

根据其行数(即始终不同)添加少量相等的排名,这将永远不会达到下一个排名。将
LARGE
应用于该列将对最初相等的条目进行排序

例如,3乘以4.8将变成4.800002、4.80005、4.802

更简单的方法是:将行号除以一个足够大的数字添加到所有条目中:如果它们的精度为0.1,则为所有条目添加一小量将使它们唯一。将最终结果四舍五入将使它们再次相等。

在“前五名”表中,假设第一个评级(示例中为8.5)在B2中,然后在A2中尝试此数组公式

=索引(电影[标题]、小(如果(电影[分级如果类型])=B2,行(电影[分级如果类型])-MIN(行(电影[分级如果类型])+1)、计数(B$2:B2,B2))

按CTRL+SHIFT+ENTER键确认并向下复制

=IF(COUNTIF($A:$A;$A5)>1;$A5+ROW($A5)*0.000001;$A5)
这将检索正确的标题,即使在评级中重复

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

=索引(电影[标题]、匹配(1,索引((电影[流派评级]=B2)*(计数(A$1:A1,电影[标题])=0)、0))