我很难找到正确的公式来准确地从所有场景中的一个范围内返回前三名的结果。当排名不相等时,事情总是很好的,1,2,3,4,5。然而,当前2或3名结果并列第一时,比如1,1,1,4,5,我无法找到正确的公式来准确地返回所有前3名。
地点排名
在E3:E6的数组'Helper‘公式范围与F3:F6的'Top 3’范围完美地工作,所以等级排序逻辑工作得很好。
辅助阵列
前3参考范围
在G3:G6上创建一个“前3名列表”的最后一步是它出错的地方。我已经尝试了许多变体,包括数组公式,这是我新的,但没有工作。到目前为止,最好的是匹配&小组合,但不擅长复制。(见下文)
前3名-列表公式没有占据所有的3 #1位置
如果有人知道一个公式,将返回一个准确的‘前三名名单’,即使有重复的排名?谢谢!
PS:这是我第一次请求发帖。Stackoverflow帮了我很多次
发布于 2018-11-23 19:26:15
这个答案将返回前三个结果的顺序,它们出现在您的列表中。它甚至有可能消除helper列,但我没有进行那么远的测试。我重新排序了您的列表,这样它就不只是简单地抓取前三行。否则,它就像排序列表和链接到前三行一样简单。
帮助列获取前三名分数
=AGGREGATE(14,6,$C$4:$C$8,ROW(A1))
它假设您的数据在B4:C8中。把公式复制下来,直到你把它分成三行。14的聚合将排序您的列表从最大到最小。行(A1)将返回排序列表中的第一个值。当它被复制下来时,它将增加到行(A2),因此它将返回排序列表中的第二个值,依此类推。
将排序分数与名称匹配
这假设你的前三名分数在E4:E6中。
=INDEX(B:B,AGGREGATE(15,6,ROW($C$4:$C$8)/($C$4:$C$8=E4),COUNTIF($E$4:E4,E4)))
它查找与排序前三个列表中的数字相匹配的所有行数。当有重复时,由于countif,它前进到匹配列表中的下一个行号。行号随后被传递给索引,而索引反过来又会拉出名称。
发布于 2018-11-23 17:05:51
从我所看到的,你在引用前3列,如果有平分的话,它将永远是"1“。你不是应该用“帮手”一栏吗?
=OFFSET($A$2,MATCH(SMALL($C$3:$C$7,E4),$C$3:$C$7,0),0)
https://stackoverflow.com/questions/53454280
复制