MATCH逆序

时间:2015-09-11 15:30:14

标签: excel sorting indexing match reverse

在excel表中,我从A1到A6:

1,2,4,6,8,9

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

我可以轻松使用MATCH和INDEX函数找到4,但我找不到找到6的方法。

如何在MATCH函数中反转数组的顺序?

4 个答案:

答案 0 :(得分:1)

您仍然可以使用@ INDEXMATCH使用@ExcelHero add one技巧,但您需要确保匹配的偏移量不会溢出您的索引。在许多用例中,您还可以保护您的匹配免受下溢。当然,如果MATCH没有请求-1(大于)匹配类型参数的反向(降序)顺序,或者Excel提供了用于反转的公式,我们就不需要这一切。阵列。

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

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

N19是包含您查找的值的单元格,lookup_range是查找范围的名称,条件是指the first cell in the named 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的第一个参数。

答案 1 :(得分:0)

您无法撤消订单,但可以执行此操作:

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

以上公式返回六个,它基于搜索五个。所以这就是你在五个区间内找到第二个值的方法。

当然,正如您所提到的,您可以使用我在此处完全相同的公式找到区间的第一个值(本例中为4个),除了+1附近没有{。}}。

答案 2 :(得分:0)

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

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

注意:

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

答案 3 :(得分:0)

使用 XMATCH,如本网站所述:

https://exceljet.net/formula/xmatch-reverse-search

XMATCH 允许你设置搜索方向,如下:

=XMATCH(B1,A1:A6,0,-1)

其中B1是要匹配的单元格,A1:A6是你要搜索的数组,0表示“完全匹配”,-1选择反向搜索方向(以单元格 A6 开始,以 A1 结束)。