如何在Excel中找到范围的第K个最大值的位置?

时间:2015-12-02 12:16:35

标签: excel

问题与标题中的相同。请注意LARGE(range, k)没有告诉我该值的位置,并且尝试使用INDEX搜索它可能会在存在重复项时失败。还有另一种方式吗?

2 个答案:

答案 0 :(得分:1)

根据原始数据以及您是否有能力修改工作簿,一种方法是使用"帮助列"通过向数据添加一个非常小的行依赖值来为您提供唯一值,例如行号除以1000000.只要附加值不大于数据值中的最小真实差值,它就不会改变数据的排名顺序,但它确实使其独一无二,并且具有相对容易的好处。

screenshot from an Excel spreadsheet demonstrating this technique

在这个例子中B3:B17主要包含整数值,一对" .5"分数,有一些重复。我已将C3:C17设置为辅助列,其中我添加并调整行号* 0.0000001的值。由于真实数据中最小的步骤变化远大于最大调整值,因此不存在错误排序的风险 - 只有在原始数据完全相同的情况下,现在基于表中的位置进行排序。 / p>

列F列出了最大的辅助值(例如,单元格F3公式"=LARGE($C$3:$C$17,E3)"),列G找到值所在的行(单元格G3公式"=MATCH(F3,C:C,0)"),然后输出表查找使用此行号的真实数据。

答案 1 :(得分:-1)

如果您使用一列并输入=IFERROR(RANG.eq(K2;"range of K")+SUMPRODUCT(--(K2=K$2:K$74"ex");--(K2<K$2:K$74));"")和一列=IFERROR(COUNTIFS(M2"new column":$M$74;M2)+M2-1;""),该怎么办? 之后,K中的所有数字都将在范围内,即使相等,您也可以使用LARGE