Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何找到K';Excel中某个范围的第个最大值?_Excel - Fatal编程技术网

如何找到K';Excel中某个范围的第个最大值?

如何找到K';Excel中某个范围的第个最大值?,excel,Excel,问题如标题所示。请注意,LARGE(range,k)不会告诉我值的位置,如果存在重复项,尝试使用INDEX搜索它可能会失败。还有其他方法吗?如果使用一列并键入=IFERROR(RANG.eq(K2;“range of K”)+SUMPRODUCT(--(K2=K$2:K$74“ex”);--(K2根据原始数据以及您是否能够修改工作簿,一种方法是使用“helper列”通过向数据中添加一个非常小的依赖于行的值(例如行数除以1000000)来提供唯一值。只要附加值不大于数据值的最小真实差异,它就不会改

问题如标题所示。请注意,
LARGE(range,k)
不会告诉我值的位置,如果存在重复项,尝试使用
INDEX
搜索它可能会失败。还有其他方法吗?

如果使用一列并键入
=IFERROR(RANG.eq(K2;“range of K”)+SUMPRODUCT(--(K2=K$2:K$74“ex”);--(K2根据原始数据以及您是否能够修改工作簿,一种方法是使用“helper列”通过向数据中添加一个非常小的依赖于行的值(例如行数除以1000000)来提供唯一值。只要附加值不大于数据值的最小真实差异,它就不会改变数据的排名顺序,但它确实使数据唯一,并具有相对“简单”的优点

在本例中,B3:B17主要包含整数值,两个“.5”分数,有一些重复。我将C3:C17设置为辅助列,在其中我添加并调整行号*0.0000001的值。由于真实数据中最小的阶跃变化远大于最大的调整值,因此没有错误排序的风险-只有在原始数据正好是同样,排序现在基于表中的位置


第F列列出最大的帮助值(例如单元格F3 formula
“=LARGE($C$3:$C$17,E3)”
),第G列找到该值所在的行(单元格G3 formula
“=MATCH(F3,C:C,0)”
),然后输出表使用该行号查找真实数据。

“如果存在重复项,则使用索引搜索可能失败”那么您想要所有位置?解决方案是使用大(范围,k)以及任意数量的“返回多个结果”方法的组合,这些方法可以在SO上找到。例如,这里:@RC:不是所有的方法,但我需要不同的k位置。这是一个聪明的破解,但你基本上是说没有其他解决方案吗?没有,但它的好处是易于实现,而不会出现“职级调整"大于数据中所需的精度。这实际上是一个问题中的两个问题-从非唯一数据确定唯一排名,然后确定位置。对于问题的第一部分,还有其他不需要帮助列的方法,例如查看Chip Pearson的站点,但您仍然需要处理位置,而我我想这是尴尬的部分。