提取没有VBA的列表中的每个组的前5个值

我想开发一个公式来构build多个组内前5名标题/值的表格,最好不用VBA。 我附上了一个例子。 由于我是这个论坛的新手,并且需要至less10个声望点才能发布图片,所以我上传了截图: http ://i.imgur.com/v1LAkYk.png *谢谢@Scott Craner将图片添加到发布!

http://i.imgur.com/v1LAkYk.png。

我已经发现和审查了以下线程: 在Excel中提取前5个最大值(基于组) 。 通过使用公式,我能够从整个列表中排除前5名,但是我没有能够使用IF子句来按组排名。

预先感谢您的时间和考虑! 请让我知道,如果我的要求不清楚和/或如果您有任何具体问题。 感谢任何支持!

尝试这个:

=Large(If(C:C = "Group 1",A:A),Row(1:1)) 

这将进入组1结果右上angular的单元格(F3?)。 这是一个数组公式,并且必须用Ctrl-Shift-Enter确认。

对于E3中的项目:

如果这些值是唯一的, 无关系:

 =INDEX(B:B,MATCH(F3,IF(C:C = "GROUP 1",A:A),0)) 

如果有平局的可能性,那么它会变得更复杂一点。

 =INDEX(B:B,MATCH(1,IF(C:C = "GROUP 1",IF(A:A = F3,IF(COUNTIF(B:B,$E$2:$E2) = 0,1,0),0),0),0)) 

两者都是数组公式,必须用Ctrl-Shift-Enter确认。 然后复制下来。

注意:这些数组公式将遍历整个列,这将需要时间。 将整列范围限制到实际的绝对数据范围将是有利的。 例如,将C:C更改为$ C $ 3:$ C $ 1000(如果1000是最后一行)。


有关数组公式的更多信息,请参见本文