分享

合并单元格反向查找

 hercules028 2021-12-03

前言

有的同学刚刚学会VLOOKUP函数,就已经感觉自己的EXCEL水平不错了,不过也的确如此,VLOOKUP函数看起来并不复杂,但真的用起来,你就会发现并非你想象的那么简单,因为VLOOKUP很挑剔,例如要查找的数据类型必须一致,必须在区域的第一列等等,返回值必须在查找值得右边。

如果要返回的值在查找值得左边,就属于反向查找,用常规的VLOOKUP函数已经不行了,需要用到加强版VLOOKUP(要查找的值,if({1,0},查找值列,返回值列),2)或使用INDEX+MATCH函数

正文

以上用法,大家可以参考以前的文章,今天继续加大一下难度:合并单元格的反向查找

以下图为例,第一列为项目的建造基地,且为合并单元格,第二列为项目编号。我们需要根据项目编号查找建造的基地。

图片

方法一、采用LOOKUP,OFFSET,MATCH组合

公式如下:

=LOOKUP('座',OFFSET($A$1,0,0,MATCH(D2,$B$1:$B$9,0),1))

图片

解释:

1、首先使用MATCH函数查找项目在B列的位置

MATCH(D2,$B$1:$B$9,0),返回值为4,即H486项目在$B$1:$B$9区域的第4个位置。

2、然后使用OFFSET函数返回一个新的区域,区域的大小根据项目所在的行来确定

OFFSET($A$1,0,0,MATCH(D2,$B$1:$B$9,0),1)

=OFFSET($A$1,0,0,4,1)

=A1:A4,意思是将A1向下偏移0个单元格,向右偏移0个单元格,新的区域行数为4,列数为1,实际得到的区域为A1:A4

3、最后使用LOOKUP函数查找该区域中出现的最后一个文本。

LOOKUP('座',OFFSET($A$1,0,0,MATCH(D2,$B$1:$B$9,0),1))

= LOOKUP('座',A1:A4)

=”烟台”

LOOKUP('座',查找区域),可以返回此区域的最后一个文本

LOOKUP(9E307,查找区域),可以返回此区域的最后一个数字

方法二、使用LOOKUP,INDIRECT,MATCH组合

=LOOKUP('座',INDIRECT('A1:A'&MATCH(D2,$B$1:$B$9,0)))

图片

解释

=LOOKUP('座',INDIRECT('A1:A'&MATCH(D2,$B$1:$B$9,0)))

= LOOKUP('座',INDIRECT('A1:A'&4)

= LOOKUP('座',INDIRECT('A1:A4')

= LOOKUP('座', A1:A4)

=”烟台”

总结

不管是OFFSET还是INDIRECT函数,最终目的都是重新构建一个查找区域,这个查找区域的行数由查找值确定,最后返回这个区域的最后一个文本。 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多