VBA语言专家VBA语言专家  2021-08-31 00:02 每日新闻最新消息 隐藏边栏  3 
文章评分 0 次,平均分 0.0

讲了两篇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 数组在实现多值查询过程中的作用是什么?

分享成果,随喜正能量

zmrjsgc:有问题,甲1 31和甲13 1如何区分

v发v人v人:连字符加个空格键

VBA语言专家:今日内容有难度

VBA语言专家:数组的两个元素

崇拜正义之士:大括号里的1,0是什么意思啊IF后面那个

云之巅知识小店:看不懂if和(1,0),哪位boss给解释一下

云之巅知识小店:哎,自学的,不怎么懂数组公式应用

崇拜正义之士:大括号里的1,0是什么意思啊IF后面那个

VBA语言专家:数组的两个元素

小名小丫是真的:(1,0)是啥意思?

蓟歌2T:IF后面的大括弧里的两个元素{1,0}为什么不是{2,3}?是什么原理啊?

网海拾贝168:用条件求和不就完了?!

wzq1314740:试了下,你这个公示不行a

Lesliechan125:怎么查找甲1业绩最高的时候对应的年龄呢?

崇拜正义之士:分享杠杠的

v发v人v人:连字符加个空格键

你可能也喜欢

扫一扫二维码分享