【问题标题】:MATCH reverse orderMATCH 逆序
【发布时间】:2015-12-08 05:26:54
【问题描述】:

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

1、2、4、6、8、9

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

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

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

【问题讨论】:

  • 该死,这个网站的审核越来越疯狂了。太宽泛?这是一个非常明确的问题。

标签: excel sorting indexing match reverse


【解决方案1】:

您仍然可以通过使用@ExcelHero add one 技巧来使用INDEXMATCH 的组合,但您需要确保匹配的偏移量不会溢出您的索引。在许多用例中,您还可以保护您的匹配免受下溢。当然,如果 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))))

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

【讨论】:

    【解决方案2】:

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

    =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】:

      使用 XMATCH,如本网站所述:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2018-02-20
        • 2017-09-01
        • 1970-01-01
        • 2010-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多