2016-01-20 26 views
0

我想开发一个公式来构建多个组内前5个标题/值的表格,最好不使用VBA。我附上了一个例子。由于我是这个论坛的新手,并且需要至少10个声望点才能发布图片,因此我已将截图上传到:http://i.imgur.com/v1LAkYk.png *谢谢@Scott Craner将图片添加到帖子中!提取没有VBA的列表中每个组的前5个值

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

我已经发现并审议了以下主题:Extracting top 5 maximum values (based on group) in excel。使用公式我能够从整个列表中排除前5名,但我没有能够纳入IF条款来按组排名。

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

+0

Excel的哪个版本?你打算使用数据透视表还是数据表?公式方法可能会有点混乱,并将采用数组。 – JasonAizkalns

回答

1

试试这个:

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

这将进入第1个结果的右上角细胞(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确认。然后复制下来。

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


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

+0

非常感谢 - 每个值都是独一无二的!你将如何去取得冠军(即Orange,Kiwis等)? – ndnathan

+0

鉴于您必须按[Ctrl-Shift-Enter]来刷新表格,我担心该表格不会随着基础列表数据更改而自动更新。情况会是这样吗? – ndnathan

+0

@ndnathan不,ctrl shift输入只告诉excel它是一个数组,你只做一次。你会复制并粘贴公式栏中的公式,然后按Ctrl-Shift-Enter而不是输入。它会随着数据的变化而更新。 –

相关问题