You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MATCH函数匹配顺序从自上而下改为从活动单元格向上

解决从活动行向上搜索匹配项的需求

嗨,我来帮你搞定这个问题!你现在需要把原本从上到下的MATCH搜索逻辑,改成从当前行(124行)向上查找第一个包含"Sub-Assembly"的单元格位置,这里有几种实用的方法,适配不同的Excel版本:

方法1:用MATCH结合区域反转(兼容所有Excel版本)

如果你想继续使用MATCH函数,可以通过反转搜索区域来实现从下往上查找,公式如下:

=ROWS(M1:M124)-MATCH("Sub-Assembly",INDEX(M1:M124,ROWS(M1:M124)):M1,0)+1

公式解释:

  • INDEX(M1:M124,ROWS(M1:M124)):M1:把原本的M1:M124区域反转,变成从M124到M1的垂直区域,这样MATCH会从你要的起始行(124行)开始向上搜索
  • MATCH("Sub-Assembly",...,0):在反转后的区域里找到第一个匹配项的相对位置
  • ROWS(M1:M124)-[MATCH结果]+1:把反转区域的相对位置转换回原区域M1:M124的相对位置,得到你需要的单元格位置

方法2:用LOOKUP函数(简洁高效,兼容多数版本)

如果你不需要局限于MATCH,LOOKUP可以更简洁地直接返回最后一个(也就是从下往上第一个)匹配项的行号:

=LOOKUP(2,1/(M1:M124="Sub-Assembly"),ROW(M1:M124))

公式解释:

  • 1/(M1:M124="Sub-Assembly"):生成一个数组,匹配的单元格对应1,不匹配的对应#DIV/0!错误
  • LOOKUP(2,...):会忽略错误值,找到最后一个等于1的位置,也就是从下往上第一个匹配项的行号

方法3:用XLOOKUP(Excel 365/2021及以上版本)

如果你用的是较新的Excel版本,XLOOKUP直接支持反向搜索,公式最直观:

=XLOOKUP("Sub-Assembly",M1:M124,ROW(M1:M124),,0,-1)

公式解释:

  • 最后一个参数-1就是指定从区域的末尾向前搜索,完美符合你从124行向上查找的需求
  • 这个公式直接返回匹配单元格的行号,如果你需要原区域的相对位置,把ROW(M1:M124)换成ROW(M1:M124)-ROW(M1)+1即可

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:19:02