Excel情报局
职场联盟Excel
解决这个问题的重点是要了解一个Excel被冷落且不常用的函数:CHOOSE函数。CHOOSE函数的作用主要是用于根据索引值从一组数据中返回相应位置的数值。
CHOOSE函数的基本结构:
=CHOOSE(索引值,参数1,[参数2],…[参数254])
索引值是介于1到254之间的数字或数组,后面的参数可以是数字、文本、单元格引用等。比如:=CHOOSE(3,B1,B2,B3),返回第三个参数B3。很容易理解。如果感觉抽象的话,我们继续看下面的步骤实例。
我们在E2单元格输入函数公式:
=CHOOSE({1,2},$B$2:$B$8,$A$2:$A$8)
CHOOSE函数的第1参数,是一个常量数组{1,2},第2参数是B2:B8区域,第3参数是A2:A8区域。第1参数之所以用常量数组{1,2}表示,就是可以先返回第1个区域,即B2:B8区域的值,再返回第2个区域,即A2:A8区域的值,从而重新构建查询区域两列数据的位置。实质就是实现了两列位置的互换。构造出了B列地区数据在前,A列省份数据在后的两列多行的内存数组,内存数组溢出效果如下图所示:
我们再加深一下理解,如果我们将CHOOSE函数的第1参数{1,2}换成{2,1}的话:
=CHOOSE({2,1},$B$2:$B$8,$A$2:$A$8)
想必大家也能理解其变化了:可以先返回第2个区域,即A2:A8区域的值,再返回第1个区域,即B2:B8区的值,从而重新构建查询区域两列数据的位置,数组溢出效果如下图所示:
最后我们只需要嵌套VLOOKUP函数就可以了,用CHOOSE函数作为VLOOKUP函数的第2参数,即查询区域。
=VLOOKUP(D2,CHOOSE({1,2},$B$2:$B$8,$A$2:$A$8),2,0)
CHOOSE函数返回的内存数组,符合VLOOKUP函数要求被查询值必须处于查询区域首列的特征。VLOOKUP函数以D2地区值作为被查询值,在内存数组中查询并返回第2列所对应的省份信息,从而实现逆向查找的目的。
回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。
〖往期知识点精彩链接点击阅读〗