字符串模糊查_Vlookup的9种查⽅式,灵活运⽤函数原来
这么简单!
这两天看了不少⽹上的教程,也了⼀些题库实战,整理⼀下EXCEL中VLOOKUP函数的常⽤技巧。
相对引⽤的概念,EXCEL默认横向拉动的时候列变⾏不变,竖向拉动的时候⾏变列不变。
绝对引⽤和相对引⽤
⾸先了解⼀下绝对引⽤
绝对引⽤时⽆论横向还是竖向拉动,⾏列都不变
相对引⽤时,$在⾏前⾯则横向竖向⾏动都不变,$在列前⾯则横向竖向拉动列都不变
基础查
VLOOKUP(查⽬标,查区域,返回列,0)
下⾯是⼀个实例:
下⾯是⼀个实例:
在员⼯信息表中根据员⼯⼯号查询员⼯姓名,我想要在D1:G9的表格区域中查⼯号分别为A01048、A05023、A09095的员⼯姓名,⾸先查询⼯号A01048的员⼯姓名,之后可以直接下拉公式,表格⾃动填充结果。
此公式查⽬标⼀定要在查区域的第⼀列,⽐如我通过⼯号查姓名,那么⼯号必须在查区域的第⼀列,即D1:G9;如果是通注意:此公式查⽬标⼀定要在查区域的第⼀列
过姓名查部门,那么查区域需要是E1:G9,⽽且查区域需要⽤ $ 符号绝对引⽤,不然下拉公式的时候区域变化可能会查不到数据。返回列指查询内容所在列,如我想要查的是姓名,姓名这⼀列在D1:G9区域的第⼆列,所以返回列的值是2,以此类推。
精确即完全⼀样,模糊即包含的意思。参数如果指定值是0或FALSE就表⽰精确匹配,⽽最后⼀个参数0或1表⽰函数精确查或模糊查。精确即完全⼀样,模糊即包含的意思。
值为1或TRUE时则表⽰模糊匹配,漏掉该参数则默认模糊匹配。
精确匹配是使⽤历遍法查,模糊匹配是使⽤⼆分法查。
公式01
多列查
VLOOKUP(查⽬标,查区域,COLUMN(A1/),0)
vlookup模糊匹配上例通过⼯号查询姓名,如果想要通过⼯号同时查询姓名和部门,则可以使⽤COLUMNS函数。不使⽤COLUMNS函数往右拖动返回列的值不变,⽆法查询其他列。
不使⽤函数直接拖动
使⽤COLUMNS函数,A1、B1、C1...分别代表1、2、3...,向右拖动直接变化返回列,返回列的值递增。注意不要忘了相对引⽤查⽬标,固定列,此例中为$A3。
公式02
字符的模糊查
VLOOKUP("*"&查⽬标&"*",查区域,返回列,0)
如我并不知道具体的⼯号,只知道⼯号中包含A05,就可以使⽤模糊查。第四个参数0是使⽤遍历法进⾏精确查,因此当从上⽽下查到包含A05的⼯号,即停⽌查。举例来说,张丽和夏远的⼯号都包含A05,但是查出的姓名是张丽,因为张丽在前⾯。
公式03
数字的区间查
VLOOKUP(查⽬标,查区域,返回列,1)
由于⼆分法的原理,引⽤的数字区域⼀定要从⼩到⼤排序,杂乱的数字是⽆法准确查到的。模糊查的原理是:给⼀定个数,它会到
给⼀定个数,它会到和它最接近,但⽐它⼩的那个数。
公式04
反向查
VLOOKUP(查⽬标,IF({1,0},查列,区域列),返回列,1)
注意:这⾥其实不是VLOOKUP可以实现从右⾄左的查,⽽是利⽤IF函数的数组效应把两列换位重新组合后,再按正常的从左⾄右查。注意:
IF({1,0},查列,区域列)
IF({1,0},查列,区域列)这是本公式中最重要的组成部分。在EXCEL函数中使⽤数组时,返回的结果也会是⼀个数组。这⾥1和0不是实际意义上的数字,⽽是1相关于TRUE,0相当于FALSE,当为1时,它会返回IF的第⼆个参数(查列),为0时返回第⼆个参数(区域列)。
公式05
多条件查
{=VLOOKUP(查条件A & 查条件B,IF({1,0},区域A & 区域B,查区域),返回列,1)}
根据员⼯号和姓名两个条件查询部门,输⼊公式=VLOOKUP(A3&B3,IF({1,0},E1:E9&F1:F9,G1:G9),2,0)
以后按ctrl+shift+enter
按ctrl+shift+enter⾃动变成数组形式
{=VLOOKUP(A3&B3,IF({1,0},E1:E9&F1:F9,G1:G9),2,0)}
公式06
公式剖析:
A3&B3 把两个条件连接在⼀起。把他们做为⼀个整体进⾏查。
E1:E9&F1:F9,和条件连接相对应,把⼯号和姓名列也连接在⼀起,作为⼀个待查的整体。
按F9后可以查看的结果。
IF({1,0},E1:E9&F1:F9,G1:G9) ⽤IF({1,0}把连接后的两列与G列数据合并成⼀个两列的内存数组。按F9
完成了数组的重构后,接下来就是VLOOKUP的基本查功能了,另外公式中含有多个数据与多个数据运算,所以必须以数组形式输按ctrl shift后按ENTER结束输⼊。
⼊,即按ctrl shift后按ENTER
批量查
{=VLOOKUP(B$9&ROW(A1),IF({1,0},$B$2:$B$6&COUNTIF(INDIRECT("b2:b"&ROW($2:$6)),B$9),$C$2:$C$6),2,)}
公式07
公式剖析:
B$9&ROW(A1) 连接序号,公式向下复制时会变成B$9连接1,2,3。
给所有的张⼀进⾏编号。要想⽣成编号,就需要⽣成⼀个不断扩充的区域(INDIRECT("b2:b"&ROW($2:$6)),然后在这个逐⾏扩充的区域内统计“张⼀”的个数,在连接上$B$2:$B$6后就可以对所有的张⼀进⾏编号了。
IF({1,0}把编号后的B列和C组重构成⼀个两列数组。
跨表查
VLOOKUP(查询⽬标,查询表!查询区域,返回列,0)
下例跨表查询员⼯所在部门。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论