首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配反向顺序

匹配反向顺序
EN

Stack Overflow用户
提问于 2015-09-11 23:30:14
回答 3查看 10.4K关注 0票数 6

在excel表格中,我有从A1到A6的转换:

1、2、4、6、8、9

我想使用匹配函数来检索包含5的最小间隔。在这里,4和6。

我可以很容易地使用匹配和索引函数来查找4,但我找不到查找6的方法。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-12 21:57:40

您还可以尝试以下两个公式:

代码语言:javascript
复制
=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
票数 0
EN

Stack Overflow用户

发布于 2017-01-02 22:25:15

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

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

代码语言:javascript
复制
=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

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

代码语言:javascript
复制
# 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
EN

Stack Overflow用户

发布于 2021-06-01 21:10:50

使用XMATCH,如本网站所述:

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

XMATCH允许您设置搜索方向,如下所示:

代码语言:javascript
复制
=XMATCH(B1,A1:A6,0,-1)

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32527060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档