3

我正在尝试在 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 Days of Night),其中一部应该是 Blade II,因为它的评分也为 6.6。

因此,如果我指定的流派与电影的流派匹配(Rating If Genres),我所做的就是将评级存储在表的列中。之后,我从该列表中选择最高的流派。

如何使它显示来自 LARGE 功能的 Blade II 结果,而不是显示 30 天的夜晚两次?

4

2 回答 2

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))

于 2013-01-11T15:36:43.697 回答
1

为评级创建一个辅助列。

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

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

根据它们的行号(即总是不同),在相同的排名中添加少量,这将永远不会达到下一个排名。应用LARGE到该列将对最初相等的条目进行排名。

例如,4.8 的 3 倍将变为 4.800002、4.80005、4.802。

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

于 2013-01-11T15:26:46.957 回答