京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6378|回复: 0

Excel数据分析:Vlookup的精确匹配和模糊匹配!

[复制链接]

13

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2019-4-9 21:43:41 | 显示全部楼层 |阅读模式 来自 中国

9 y" y3 D, g. ^7 Pvlookup是工作中最常见的公式之一,可以快速得出相匹配的值。那么,你真的会使用吗?先来看一下vlookup的公式:VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
" a0 }6 }5 R4 Z) u! o看上去有点复杂……好吧,说人话:VLOOKUP(要匹配的值,匹配的列表,返回第几列,[精确 / 模糊匹配])
" j* ~9 c) t) U! ~4 I# W( v  `0 T/ }公式里面有4个参数,这回看清楚了,是4个参数,那接下来就是搞清楚这4位老兄是干嘛滴了,用一个例子说明一下比较好理解:
) k# c8 t( y( X8 M) Y3 i. w# i
& ?- q( b1 O/ c6 I+ b) J张大牛的分数是多少?# c3 ?% |& b1 _/ R6 b8 h9 I
刚刚考完试,查询成绩就是vlookup大显身手的时候啦。上图左边是班级的成绩表,右图是张大牛同学的个人成绩单,用vlookup可以快速匹配出分数。别嘲笑这个图哈,一个班肯定不止这三个大宝贝,这里就是一个小栗子。# {, I. U1 L- \. S; W5 ?. H
我们回到公式上来,还记得前面说到有4个参数嘛,我们一个一个来看。
4 r0 v/ `2 u& V& k2 K1. 要匹配的值:“张大牛”, 这个肯定是张大牛同学啦7 m% A# g  k: }9 M1 k, B6 i6 j
2. 匹配的列表:“成绩表”,4*2的表格区域1 [% S) Y) K2 u  w- T5 K$ z% I
3. 返回第几列:“2”,我们要返回的“分数”在表格的第2列
2 M1 l% ~" m8 p9 b+ r0 R: `; H4. [精确 / 模糊匹配]:“0”,0表示精确匹配,1表示模糊匹配,不填默认是0,先选择0吧,后面再详细解释原因。
1 p8 X7 n6 `/ u! E/ u6 z于是,这张图的下场应该是这样的:
9 h" x! f% m3 y2 u) O9 R0 m, ?% h  J; f1 R$ k
在黄色区域填入公式,4位参数兄台对号入座,张大牛,你就是80分啦!
3 d1 ~- c! K0 X2 F2 D2 ]如果要重复使用这个公式,比如遇到下面这种情况:
7 Z6 C$ y- B( @
' _/ p# ~: _- I. j0 k% B1 O这时候记得把“成绩表”区域固定起来,像这样:“$B$2:$C$5”,默认是“Ctrl + F4”,也有的系统是直接“F4”的。其他参数不用固定,这样张大牛的公式可以直接向右拖拉复制到其他同学的分数格里。: @* _8 k6 V* w+ K% b. \  }

  m7 w# Z5 }- y说到这里,最后一个参数也应该自我介绍一下了,为什么这里是0而不是其他数呢……) T4 A4 X2 l4 e3 M" J% ?( d
其实vlookup支持2种匹配方式,体现在第4个参数,即精确匹配和模糊匹配。该用布尔值表示的,0(或者False)表示的是精确匹配,1(或者True)表示的是模糊匹配。
$ x# e* V( x, l( P3 t! z上面的例子中的成绩表因为是精确的1对1,所以用精确匹配。那么模糊匹配,或者叫近似匹配什么时候用呢?请看下面的例子:
+ j! o  t  b3 |% F+ X
7 ]- b; F& j4 Q; d3 U  T* H$ n  \如果我们想对学生的分数进行等级评价,如右图,此时如果继续用精确匹配,那么赵花花同学的“等级”会报错,因为在左边的“分数-等级表”中匹配不到“75分”的等级。
% O# o& J0 I+ y5 ~# R: M
6 X  Y/ u) L& ]2 M' \4 X- L, i在模糊匹配中,第2个参数选中的表格就变成了一个“范围”概念的表格,即起点为自身的数值,终点为下面一格的数值,不包含下面一格,可以参看右边的匹配范围。注意,这里只能从小向大进行无缝隙排列。
/ {7 J9 ~# }' z+ i0 h" J1 x, t2 Z' n0 Z回到例子中来,如果将第4个参数填入“1”,或者“True”,那么匹配条件为“模糊匹配”或者“近似匹配”,可以看到赵花花的等级匹配到的是“中等”,因为赵花花是75分,属于“中等”,即 [70,80) 的取值范围。
9 S( m. J7 k  R: Z1 r  ]# w- p顺便说一下,vlookup公式有4个参数,只要是符合参数要求,并且可以识别,你填什么进去都可以,比如像这样:
$ d9 A, t9 W$ X( x( X- J. QVLOOKUP(“张“&”大牛“, B2:C5, 2, 0)..........把”张“和”大牛“拼接起来
+ C* C; R! t! G9 e! X" z3 m' bVLOOKUP(F3, B2:C5, 2, 0+1)..........注意看第4个参数,是0+1,其实我想进行的是 1 模糊匹配# |+ i8 B2 @* V. C
最后说一个vlookup的小技巧吧,因为vlookup的第3个参数,即选择返回第几列,只能从左至右数,那么遇到下面这中情况怎么办呢?还是用最开始的精确匹配的例子:
9 f4 S2 l& {9 i: P4 a
0 G& e: |( N6 R& O4 N3 O% P5 o现在问题反过来了,给出右侧的分数,匹配左侧的姓名,那该怎么做……
4 x8 Z* l7 e5 ]) d, L8 Z0 Z" W如果这样填入公式:=VLOOKUP(F3, B2:C5, 2, 0) 那结果就是报错。
' [2 w- B2 _, {原因出在左边的分数表,我们要匹配的是“100”,而在左边分数表中第一列没有任何一个值是“100”,自然也就无法返回相对应的第2列的值了……8 ?3 M; q! S: Y3 g
那么怎么办呢……?以前工作中经常看到同事这样做:
1 W  k1 E" t* y9 q7 n改变左边的分数表:
' ^  ^) D$ }9 s5 f* @
  P. |4 G6 {' i的确,这样确实可以解决问题,但是很...难...看...,而且在一些有完善数据表制作流程的公司,比如微软啦,所有的表都是和后台数据库实时连接的动态表,是没有机会添加辅助列的哦,比如power pivot自动生成的表,添加的辅助列会在刷新的时候被重置掉。& r5 U& {. p. P  r" D* I5 L) K0 \
没关系,肯定有办法咯,可以这样做:
" `7 L% |3 M2 b; P把公式改成这样:=VLOOKUP(M8,IF({1,0},C2:C5,B2:B5),2,0)7 `7 \# K) ^5 i
其他的参数不变,把第2个参数改成:IF({1,0},C2:C5,B2:B5)6 O5 H3 C+ t# N) \' u; x
首先创造一个IF函数,有3个参数,组{1,0},表示顺序,然后输入“第2列”(识别列),最后输入“第1列”(返回列)。5 c& M. b# k, f4 n8 a
简单理解为:VLOOKUP(要匹配的值,IF( {1,0},第2列,第1列 ),返回第几列,[精确 / 模糊匹配]- f! g4 Y5 q& Y1 a; w
这样,就可以在不添加辅助列的情况下,实现自右至左的匹配了。
3 U0 P. p$ {; \! A! K& L
- e& U' E0 q2 I5 Z7 j# B# T* x. {+ {* O( D: ~/ u- ]: R
来源:http://www.yidianzixun.com/article/0LgvoPzI% `! ^+ e7 X$ j0 D! J
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-13 10:53 , Processed in 0.042467 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表