MATCH相反的顺序

在Excel表格中,我从A1到A6:

1,2,4,6,8,9

我想用MATCH函数来检索包含5的最小间隔。这里是4和6。

我可以很容易地使用MATCH和INDEX函数来查找4,但我找不到find6的方法。

如何在MATCH函数中颠倒数组的顺序?

你也可以试试这两个公式:

=LOOKUP(1,0/FREQUENCY(-B1,-A1:A6),+A1:A6) =LOOKUP(1,0/FREQUENCY(B1,A1:A6),+A1:A6) 

笔记:

  • 列表A1:A6不需要sorting
  • 如果B1等于A1:A6一个值,则两个公式都返回B1
  • 如果B1位于A1:A6的值范围之外,则其中一个公式返回#N/A

你不能扭转顺序,但你可以这样做:

 =INDEX(A:A,MATCH(5,A:A,1)+1) 

以上公式返回六,它是基于寻找一个五。 所以这就是你如何find周围五个区间的第二个值。

当然,正如你所提到的,通过使用与我在这里完全相同的公式,除了在结尾处没有+1之外,你可以find间隔的第一个值(在这种情况下是四个)。

你仍然可以使用INDEXMATCH的组合,通过使用@ExcelHero add one技巧,但你需要确保匹配的偏移不会溢出你的索引。 在许多用例中,您还可以保护您的匹配不受下溢。 当然,如果MATCH没有为-1(大于)匹配types参数请求反向(降序)顺序,或者Excel提供了用于反转数组的公式,则我们不需要所有这些。

我的build议是对MATCH部分使用以下公式:

 =IF(N19 < INDEX(lookup_range, 1), 1, MIN(ROWS(lookup_range), 1 + MATCH(N19, lookup_range, 1))) 

N19是持有查找的值的单元格, lookup_range是查找范围的名称,条件是指指定范围中的第一个单元格 。

所以,总而言之你可以做的(适应公式,如果你不喜欢命名的范围):

 # For the lower limit =INDEX(lookup_range, IF(N19 < INDEX(lookup_range, 1), 1, MATCH(N19, lookup_range, 1))) # For the higher limit =INDEX(lookup_range, IF(N19 < INDEX(lookup_range, 1), 1, MIN(ROWS(lookup_range), 1 + MATCH(N19, lookup_range, 1)))) 

NOTA:如果您对任何其他输出范围感兴趣,您也可以在这两个公式中更改INDEX的第一个参数。