讲了两篇VLOOKUP函数的文章,今日继续讲这个专题,之所以讲这么多,是因为这个函数对于大众来说,利用之广泛,前所未有。虽然我不太赞成用此函数,原则是能不用就不用,可是这并不妨碍我细致地给大家讲解此函数的用法。今日讲高级的查找方法,即多条件的查询。
先看下面的例子:
上面的截图中,想要查找到年龄为41的甲1的销售业绩,按照常规的做法是无论如何也实现不了的。那么怎么办呢?这就是我今日要讲的多值查询的方法,思路就是借助数组!
下面我们一起,一步一步地实现我们的目标:
在C19中录入公式:{=VLOOKUP(A19&B19,IF({1,0},A2:A16&B2:B16,C2:C16),2,0) }
别忘了数组公式的录入方法,是CTRL+SHIFT+ENTER结束录入。
先看返回值,然后我们一步一步地讲解:
公式:{=VLOOKUP(A19&B19,IF({1,0},A2:A16&B2:B16,C2:C16),2,0) }
我们先看公式计算的大概思路是怎能样的:
1 我们的努力方向不是让VLOOKUP本身实现多条件查找,而是想办法重构一个数组。对于多个条件我们可以用&连接在一起,同样两列数值我们也可以连接成一列数据,然后用IF函数进行组合。
2 A19&B19 把两个条件连接在一起,把它们做为一个整体进行查找。
3 A2:A16&B2:B16,和条件连接相对应,把人员和年龄列也连接在一起,作为一个待查找的整体。
4、IF({1,0}, A2:A16&B2:B16, C2:C16) 用IF把连接后的两列与C列数据合并成一个两列的内存数组。
5、完成了数组的重构后,接下来就是VLOOKUP的基本查找功能了。
下面我们看具体的计算过程,这个过程也是我写函数以来最为小心的时候,尽可能不出差,之前小心翼翼的写过一次,这次是更加小心了:
1 先计算A19&B19的值得出:“甲141”
公式变成:=VLOOKUP(甲141,IF({1,0},A2:A16&B2:B16,C2:C16),2,0)
2 计算A2:A16&B2:B16的值,得出:{ “甲115”;“甲220”;“甲335”;“甲430”;“甲535”;“甲640”;“甲141”;“甲220”;“甲335”;“甲440”;“甲541”;“甲646”;“甲1347”;“甲1448”;“甲1549” }
公式变成:
=VLOOKUP(甲141,IF({1,0},{ “甲115”;“甲220”;“甲335”;“甲430”;“甲535”;“甲640”;“甲141”;“甲220”;“甲335”;“甲440”;“甲541”;“甲646”;“甲1347”;“甲1448”;“甲1549” },C2:C16),2,0)
3 计算:{ “甲115”;“甲220”;“甲335”;“甲430”;“甲535”;“甲640”;“甲141”;“甲220”;“甲335”;“甲440”;“甲541”;“甲646”;“甲1347”;“甲1448”;“甲1549” },C2:C16)
的值,得到:
{ “甲115”,110;“甲220”,160;“甲335” ,150;“甲430”,140;“甲535” ,130;“甲640” ,120;“甲141” ,110;“甲220” ,100;“甲335” ,90;“甲440” ,100;“甲541” ,110;“甲646” ,120;“甲1347” ,130;“甲1448” ,140;“甲1549” ,150 } 【两列数组构建完成】
公式变成:
=VLOOKUP(甲141”, { “甲115”,110;“甲220”,160;“甲335” ,150;“甲430”,140;“甲535” ,130;“甲640” ,120;“甲141” ,110;“甲220” ,100;“甲335” ,90;“甲440” ,100;“甲541” ,110;“甲646” ,120;“甲1347” ,130;“甲1448” ,140;“甲1549” ,150 },2,0)
4 最后得出结果110
也许很多朋友看了上面的过程,不知所云,希望能仔细的研究一下,真的不是很难,掌握了这个方法,对于VLOOKUP函数的应用和数组的应用,都是受益匪浅。
今日内容回向:
1 实现多值查询的思路是什么?
2 数组在实现多值查询过程中的作用是什么?
分享成果,随喜正能量
举报/反馈

VBA语言専攻

1.7万获赞 1.5万粉丝
社会的进步,源于社会对知识的尊重和敬仰。
关注
0
0
收藏
分享