vba如何从右开始搜索特定字符位置_Excel如何⽤VLOOKUP
函数反向查?
提起Excel的查函数,我们⾸先想到的就是VLOOKUP函数,但VLOOKUP函数⼀般⽤于正向查,⽐如下⾯这样:
需要你根据学号到对应的学⽣姓名。
我们只需要在⽬标列输⼊公式:=VLOOKUP(D2,A:B,2,FALSE),就可以查出对应数据。
但如果需要我们根据姓名列查对应的学号,就不能这样直接查了,因为VLOOKUP函数只能从左往右查,不能从右往左查,那么遇到这种情况我们应该怎么做呢?其实最近微软新出了⼀个函数XLOOKUP,如果⽤这个函数,很容易就能解决反向查的问题(XLOOKUP 函数具体⽤法前⾯⽂章中已经做出详解,这⾥不再赘述),但是XLOOKUP函数⽬前并未普及,所以还得⽤VLOOKUP函数解决。
既然VLOOKUP函数只能从左往右查,那我们只需要把姓名列和学号列互换⼀下就可以⽤VLOOKUP函数查了,怎么互换呢?需要嵌套⼀个数组公式,⽤IF函数即可。
在⽬标列输⼊公式:=VLOOKUP(D2,IF({1,0},B:B,A:A),2,FALSE),搞定!
公式解释:
相⽐VLOOKUP函数正向查公式,这⾥多了⼀个IF函数的嵌套,⽬的是A列数据和B列数据调换顺序,然后再⽤VLOOKUP函数正向查。
IF({1,0},B:B,A:A)是⼀个数组公式,⾸先判断IF(1,B:B,A:A),返回结果B:B,然后判断IF(0,B:B,A:A),返回结果A:A,然后重新组合,这样最终IF({1,0},B:B,A:A)返回结果就是B:B,A:A,以达到A列数据和B列数据置换的⽬的。
VLOOKUP函数表达式:
=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
函数说明:搜索表区域⾸列满⾜条件的元素,确定待检索单元格在区域中的⾏序号,再进⼀步返回选定单元格的值。默认情况下,表是以升序排列的。
字段解释:
lookup_value:查值
table_array:查范围
col_index_num:查⽬标列序数
range_lookup:查精度(false或者0表⽰精确查,true或者1表⽰模糊查)
注意:VLOOKUP函数只能查第⼀次出现的数据。如果两个学⽣姓名⼀样,查其对应的学号,⽤VLOOKUP函数查出来的学号会是⼀样的,因为两次查查出来的都是第⼀位学⽣对应的那个学号。
IF函数表达式:
=IF(logical_test,value_if_true,value_if_false)
函数说明:判断是否满⾜某个条件,如果满⾜返回⼀个值,如果不满⾜返回另⼀个值。
字段解释:
logical_test:测试条件
value_if_true:真值
value_if_false:假值
除了VLOOKUP函数,还有⼀种⽅法可以实现数据的反向查,就是INDEX函数和MATCH函数的嵌套使⽤,如下:
公式解释:图中E2单元格返回学⽣王九的学号,先⽤MATCH函数查王九的姓名在B列中所在的⾏序数10,然后再⽤INDEX函数查⽬标区域A、B列中第10⾏第⼀列单元格⾥的内容,即学⽣王九所对应的学号A0009。
INDEX函数表达式:
=INDEX(array,row_num,column_num)
函数说明:在给定的单元格区域中,返回特定⾏列交叉处单元格的值或引⽤。
字段解释:
array:单元格区域或数组常量。
row_num:数组或引⽤中要返回值的⾏序号。如果忽略,则必须有column_num。
column_num:数组或引⽤中要返回值的列序号。如果忽略,则必须有row_num。
MATCH函数表达式:
=MATCH(lookup_value,lookup_array,match_type)
函数说明:返回符合特定值特定顺序的项在数组中的相对位置。
字段解释:
lookup_value:在数组中所要查匹配的值,可以是数值、⽂本或逻辑值,或者对上述类型的引⽤。
column函数和vlookup函数lookup_array:含有要查的值的连续单元格区域,⼀个数组,或是对某数组的引⽤。
match_type:数字-1、0或1。该参数指定Excel如何将lookup_value与lookup_array中的值匹配。此参数的默认值为1。
注:
MATCH返回匹配值在lookup_array中的位置,⽽不是其值本⾝。例如,MATCH("B",{"A","B","C"},0)返回2,即"B"在数组{"A","B","C"}中的相对位置。
匹配⽂本值时,MATCH函数不区分⼤⼩写字母。
如果MATCH函数查匹配项不成功,会返回错误值#N/A。
如果match_type为0且lookup_value为⽂本字符串,可在lookup_value参数中使⽤通配符问号(?)和星号(*)。问号匹配任意单个字
符,星号匹配任意⼀串字符(如果要查实际的问号或星号,需要在字符前键⼊波形符(~))。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论