我正在尝试在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天之夜),其中一部电影应该是Blade II,因为它也有6.6评级。
所以我所做的是如果我指定的类型在电影的类型中匹配(评级如果是类型),我将评级存储在表格的列中。之后,我从该列表中选出最高类型。
如何制作它以便显示来自LARGE功能的Blade II结果,而不是两次显示30天的夜晚?
答案 0 :(得分:2)
在“前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))
答案 1 :(得分:1)
为评级制作帮助栏。
如果评级在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,则为所有条目添加少量将使它们成为唯一。舍入最终结果将使它们再次相等。