vlookup多项匹配_VLOOKUP函数应⽤之四,多值查的实现
继续讲VLOOKUP函数,今⽇的讲的是第四个专题,多值查的实现。到这篇,此函数的讲解将将告⼀段落。什么是多值的查呢?通常情
况下,我们在使⽤VLOOKUP时都是指查到的是⼀个值,对于多个值,⽆能为⼒了,即使是模糊查,也要出是排序后查到⼀个和要查
的值最接近的值。
那么有没有办法实现多个值的查呢?当然能。在这个专业⾯对⼴⼤职场⼈的平台上,你会看到这个函数不⼀样的应⽤。包括你不敢想象
的。在很多的理论中都在介绍VLOOKUP的单值查结果,这这⾥你会看到多值查结果的⽅案。
如下⾯的例⼦:
有多个甲1,年龄分别不⼀样,如何能查到各⾃的年龄呢?
分析:经过前⾯的⼏篇VLOOKUP的⽂章,我们也有这样⼀个思路,我们在实现复杂的查时,努⼒的⽅向是重构⼀个新的查内容和查
的区域。要想实现多项查,我们可以依然借鉴这样的思路。可以这样来实现:对查的内容进⾏编号,第⼀个出现的是后⾯连接1,第⼆
个出现的连接2……,好,就按照这样的思路来⼀步⼀步的实现我们的⽬标。
我们先看⼀下B19中输⼊的公式:
{=VLOOKUP(A$19&ROW(A1),IF({1,0},$A$2:$A$16&COUNTIF(INDIRECT("A2:A"&ROW($2:$16)),$A$19),$C$2:$C$16),2,)}
对于部分朋友⽽⾔,上⾯的公式是不是如同天书⼀样?不要急,和我⼀起来慢慢分析,分析明⽩了,也就能学会了。
1. A$19&ROW(A1) 会形成“甲11”这样的字符,当向下填充B20 ,B21,中时会形成“甲12”“甲13”等字符,这就实现了我们的既
定⽬标“第⼀个出现的是后⾯连接1,第⼆个出现的连接2…….”
2. 给所有的甲1进⾏编号。要想⽣成编号,就需要⽣成⼀个不断扩充的区域(INDIRECT("A2:A"&ROW($2:$16)),然后在这个逐⾏扩充
的区域内统计“甲1”的个数,在连接上$C$2:$C$19后就可以对所有的甲1进⾏编号了。
3、IF({1,0}把编号后的B列和C组重构成⼀个两列数组。在此数字中查甲11,甲12 的值。
下⾯我把这个函数的实现过程中关键步骤的结果写给⼤家:
公式:
{=VLOOKUP(A$19&ROW(A1),IF({1,0},$A$2:$A$16&COUNTIF(INDIRECT("A2:A"&ROW($2:$16)),$A$19),$C$2:$C$16),2,)}
运算关键步骤:⿊体字描述了每步骤的变化。
步骤1:=VLOOKUP(“甲11”,IF({1,0},$A$2:$A$16&COUNTIF(INDIRECT("A2:A"&ROW($2:$16)),$A$19),$C$2:$C$16),2,)
步骤2:=VLOOKUP(“甲11”,IF({1,0},{“甲1”;“甲2”;“甲3”; “甲4” ;“甲5” ;“甲6” ;甲1”;“甲2”;“甲3”;
“甲4” ;“甲5” ;“甲6” ;甲1”;“甲14”;“甲
15”}&COUNTIF(INDIRECT("A2:A"&ROW($2:$16)),$A$19),$C$2:$C$16),2,)
步骤3:=VLOOKUP(“甲11”,IF({1,0},{“甲1”;“甲2”;“甲3”; “甲4” ;“甲5” ;“甲6” ;甲1”;“甲2”;“甲3
”;
“甲4” ;“甲5” ;“甲6” ;甲1”;“甲14”;“甲
15”}&COUNTIF(INDIRECT({"A2:A2";"A2:A3";"A2:A4";"A2:A5";"A2:A6";"A2:A7";"A2:A8";"A2:A9";"A2:A10";"A2:A11";"A
步骤4:=VLOOKUP(“甲11”,IF({1,0},{“甲1”;“甲2”;“甲3”; “甲4” ;“甲5” ;“甲6” ;甲1”;“甲2”;“甲3”;
“甲4” ;“甲5” ;“甲6” ;甲1”;“甲14”;“甲15”}& {1;1;1;1;1;1;2;2;2;2;2;2;3;3;
vlookup函数怎么应用3},$C$2:$C$19),2,)
步骤5:=VLOOKUP(“甲11”,IF({1,0},{“甲11”;“甲21”;“甲31”; “甲41” ;“甲51” ;“甲61” ;甲12”;“甲
22”;“甲32”; “甲42” ;“甲52” ;“甲62” ;甲13”;“甲143”;“甲153”},$C$2:$C$16),2,)
步骤6:=VLOOKUP(“甲11”,IF({1,0},{“甲11”,170;“甲21”,160;“甲31”.150; “甲41”,140 ;“甲51”,130 ;“甲
61”.120 ;甲12”,110;“甲22”,100;“甲32”,90; “甲42”,100 ;“甲52”,110 ;“甲62” ,120;甲
13”,130;“甲143”,140;“甲153”,150},2,)
步骤7:= 170
以上步骤是关键的⼏个步骤,如果不是很明⽩,请再次阅读我的数组运算的⽂章,或者和我联络再次讲解。下⾯看最后的结果:
共有三个值被出来了,结果和预期的⼀致。
今⽇内容回向:
1 如何利⽤VLOOKUP求出多值的查询?
2 利⽤VLOOKUP进⾏多值查询的思路是怎么样的?
3 是否还清楚的记得数组的表⽰和运算?
分享成果,随喜正能量。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论