我正在尝试应用 LARGE 函数来从忽略重复项的列中获取 5 个最大值。我搜索了一下,找到了一些建议的解决方案,但它们似乎对我不起作用。在我的实际应用中,范围是通过数组公式找到的,所以我不确定非数组公式是否适用于此。我原来的函数是 {=LARGE(IF($A:$A=$A2,$B:$B),2)} 向下拖动列。将 2 替换为 3 表示第三大,将 4 替换为第四大,等等。除了重复的情况外,这种方法有效。
例如:
数据在第 1 列,所需输出在第 2 列:
1 5
2 4
2 3
3 2
3 1
3
4
4
5
我尝试过的事情:
{=LARGE(IF(A:A < LARGE(A:A,i-1),A:A),1)} 表示第 i 个最大值。
-输入此值对于 i = 3 和 i = 4 均得出 3。
=LARGE(A:A,COUNTIF(A:A,MAX(A:A))+1)
-这似乎与 LARGE(A:A,2) 没什么不同
{=MAX(IF(A:A < LOOKUP(9.99999999999999E+307,A:A),A:A))}
-这确实检索到了值 4,但我不确定如何将其推广到第 k 个最大值。
VBA 解决方案也很好。我尝试自己编写一个,但不确定如何在数组公式 IF($A:$A=$A2,$B:$B) 中编写代码。