我有一堆由不同站点的值组成的数据,如下所示:
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”)