1、CHOOSE函数
函数CHOOSE是指按给定的索引值,返回引用数据中对应的数值。
语法结构为
CHOOSE(Index_num,value1,value2,…) ,
也就是CHOOSE(序号,数值1是,数值2……)。其中:
- Index_num 用以指明待选参数序号的参数值,为1到29之间的数字。
- Value1,value2,… 则是用来索引的数值,可以是单个数值,也可以是单元格区域的。
- 例如公式“SUM(CHOOSE(2,B2:E2,B3:E3,B4:E4)”是指返回引用值的第二个,也就是B3:E3,然后再对其进行求和。
- 但若 Index_num 为一个数组,则在函数 CHOOSE 计算时,每一个值都将计算。
【例1】利用CHOOSE函数互换A列和B列数据,并根据D2单元格的姓名,查找返回该同学的学号。
操作:在E2单元格输入公式
“=VLOOKUP(D2,CHOOSE({1,2},B2:B30,A2:A30),2,FALSE)”
回车。
析:
- 本例中CHOOSE函数的参数值为{1,2}的数组,所以函数会对B2:B30,A2:A30的两个区域进行重复多次运算。
- 首先返回区域内第一个参数值,也就是B2,再返回第二个参数值也就是A2,完成一个循环,然后再选取第一个数值,也就是B3,再返回第二个参数值也就是A3,完成一个循环;一直到选取最后的B30和A30,从而最终返回第一列是B2:B30,第二列是A2:A30的数据。
- VLOOKUP函数的第一个参数查找值,必须位于查找区域的首列中。
- 通过CHOOSE函数对原数据的两列内容互换后,便将姓名列放在了首列,再利用VLOOKUP函数通过对姓名的查询返回学号。
- 本例中公式也可表达为“=VLOOKUP(D2,CHOOSE({2,1},A2:A30,B2:B30),2,FALSE)”,也能达到相同的效果。
2、IF函数
IF函数,是常用的条件判定函数,根据满足的结果返回对应的数值。这里主要讲解IF函数在逆向查找方面的使用方法。
【例2】利用IF函数互换A列和B列数据,并根据D2单元格的姓名,查找返回该同学的学号。
操作:在E2单元格输入公式
“=VLOOKUP(D2,IF({0,1},A2:A30,B2:B30),2,0)”,
回车。
析:
- 类似于CHOOSE函数通过选取数组的先后顺序达到互换数据的效果,IF函数则通过判定结果是否成立的方式,完成数组的互换。
- 本例中用IF函数进行判定,首先为0时,表示判定不成立,返回第二个值B2:B30,然后为1时,表示判定成立,返回第一个值A2:A30,从而将原数据的两列颠倒位置。
- 若输入公式为:“=VLOOKUP(D2,IF({1,0},B2:B30,A2:A30),2,0)”,也能完成操作。
另外除了运用VLOOKUP函数嵌套CHOOSE或IF函数来进行逆向查找,在之前的文章里,也为大家介绍了用INDEX嵌套MATCH函数和VLOOKUP函数嵌套MATCH函数,通过交叉查询的方式也能达到相同的效果,这里不再展开,如有需要请参考7月29日和30日的文章分享。
小结:本文主要详述了CHOOSE函数的语法结构和用法,并结合VLOOKUP函数结合CHOOSE函数完成引用区域的列交换,从而逆向查询出需求数据。