![Excel - 查找列表每个成员的第 n 个最大值](https://linux22.com/image/1529229/Excel%20-%20%E6%9F%A5%E6%89%BE%E5%88%97%E8%A1%A8%E6%AF%8F%E4%B8%AA%E6%88%90%E5%91%98%E7%9A%84%E7%AC%AC%20n%20%E4%B8%AA%E6%9C%80%E5%A4%A7%E5%80%BC.png)
我有一堆由不同站点的值组成的数据,如下所示:
Site Value
A 1
A 2
A 5
A 7
B 5
B 7
B 11
每个站点的值数量可能有所不同。我想提取每个站点的第 n 个最大值,例如,对于 n=2
Site Value
A 2
B 7
有没有比在每个站点之间手动添加几个空白行并使用 LARGE 更简单的方法?
答案1
答案2
相关我在另一个问题上的回答。
您可以使用这些公式的组合来构建数组或范围
INDEX( value_range, MATCH( lookup_value, lookup_range, 0 ))
为范围的开始
INDEX( value_range, MATCH( lookup_value, lookup_range, 1 ))
范围的结束
因此,在您的问题中,您可以结合使用LARGE
=LARGE(INDIRECT(
INDEX($B$1:$B$7, MATCH($C1, $A$1:$A$7, 0))&":"
INDEX($B$1:$B$7, MATCH($C1, $A$1:$A$7, 1))
), 2)
笔记:您需要对网站进行排序。升序或降序都可以,只要确保网站分组即可。
其中,columnB
指的是您的值列表,columnA
指的是您的站点列表。
$C1
指的是您想要获取第 n 个值的站点(在您的示例中应该是“A”)