在没有 VBA 的情况下为列表中的每个组提取前 5 个值
Extract Top 5 Values for Each Group in a List without VBA
我想开发一个公式来构建多个组中前 5 个标题/值的 table,最好没有 VBA。我附上了一个例子。由于我是这个论坛的新手,并且要求 post 图片至少需要 10 个信誉点,我已将屏幕截图上传到:http://i.imgur.com/v1LAkYk.png * 感谢@Scott Craner 将图片添加到 post!
我已经发现并查看了以下线程:Extracting top 5 maximum values (based on group) in excel。使用该公式,我能够从整个列表中整体提取前 5 名,但我无法合并 IF 子句以按组分隔排名。
提前感谢您的时间和考虑!如果我的要求不清楚,请告诉我 and/or 如果您有任何具体问题。感谢任何支持!
试试这个:
=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:$E2) = 0,1,0),0),0),0))
都是数组公式,必须用Ctrl-Shift-Enter确认。然后抄下来。
注意:这些数组公式将遍历整个列,这需要时间。将完整的列范围限制为实际的绝对数据范围将是有利的。例如,将 C:C 更改为 $C$3:$C$1000,如果 1000 是最后一行。
有关数组公式的详细信息,请参见THIS
我想开发一个公式来构建多个组中前 5 个标题/值的 table,最好没有 VBA。我附上了一个例子。由于我是这个论坛的新手,并且要求 post 图片至少需要 10 个信誉点,我已将屏幕截图上传到:http://i.imgur.com/v1LAkYk.png * 感谢@Scott Craner 将图片添加到 post!
我已经发现并查看了以下线程:Extracting top 5 maximum values (based on group) in excel。使用该公式,我能够从整个列表中整体提取前 5 名,但我无法合并 IF 子句以按组分隔排名。
提前感谢您的时间和考虑!如果我的要求不清楚,请告诉我 and/or 如果您有任何具体问题。感谢任何支持!
试试这个:
=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:$E2) = 0,1,0),0),0),0))
都是数组公式,必须用Ctrl-Shift-Enter确认。然后抄下来。
注意:这些数组公式将遍历整个列,这需要时间。将完整的列范围限制为实际的绝对数据范围将是有利的。例如,将 C:C 更改为 $C$3:$C$1000,如果 1000 是最后一行。
有关数组公式的详细信息,请参见THIS