工作中经常会用到vlookup(正向)查找的功能,但要是想反向查找,我们该如何下手呢?其实,我们只要将vlookup函数稍作修改,就能对数据进行反向查找匹配。
前期准备工作(包括相关工具或所使用的原料等)
Excel 2013VLOOKUP+IF详细的操作方法或具体步骤
首先我们分析一下vlookup查找匹配的原理:
=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
其要引用的数据区域的第一列,必须包含要查找的值。举个例子,查找姓名A1对应的角色:


按照vlookup的匹配方法,倘若现在我们需要根据角色查询到姓名,是不是把角色和姓名这两列交换位置,就可以使用vlookup轻而易举地查找了呢?这里我们不对源数据进行修改,通过if函数的特性,在使用vlookup的过程中,将姓名和角色两列交换位置。
这里我们通过if函数(IF(logical_test,[value_if_true],[value_if_false])),先将姓名和角色列交换位置:
选中一个6x2的单元格区域,输入=IF({1,0},B2:B7,A2:A7),之后按住Ctrl+Shift后,敲Enter,就得到了交换后的数据区域:

接着,再使用vlookup函数,就得到了我们想要的结果。
我们把if函数和vlookup函数组合起来使用,就得到了反向查询匹配的公式:
=VLOOKUP(D2,IF({1,0},B2:B7,A2:A7),2,FALSE)
因为把姓名和角色两列数据交换之后,得到的仍然是两列数据,我们想要的结果在数据区域的第二列,所以col_index_num的值应该是2。

注意事项
虽然我们使用vlookup实现了反向查询,但是vlookup本身并不具备反向查询的功能。正如如我们前面的例子,只有在与其他函数搭配使用的时候,vlookup才能实现反向查询的功能,其查询的原理仍然是正向查询,即查找值必须在数据区域的第一列中,否则会返回错误。当然,我们可将上例中的角色做成动态取值,即使用数据有效性,实现姓名跟随角色的变动而变动。关于数据有效性,以及涉及到的IF函数,请参照网上大把的资料。如果我的经验对您有所帮助,我倍感荣幸。经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
