2022-11-06 03:13来源:m.sf1369.com作者:宇宇
自己正好也需要这个,解决之后答一发备忘
所需函数:
VLOOKUP函数
语法规则:
VLOOKUP( lookup_value, table_array, col_index_num, range_lookup )
lookup_value
(目标查找值): 可以为数值、文字字符串、或参照地址,主要使用参照地址,如:A3
table_array
(查找区域): 如:B3:D100
col_index_num
(返回显示列序号):查找范围内的栏数,如:B3:D100范围的话,如果col_index_num=2,则返回C列(即范围内第二列的值)
range_lookup
(是否模糊匹配): 0或False为精确匹配,1或True为近似匹配
Tips:
我们在使用参照地址或查找范围时,有时需要将值或范围固定在一个区域内,而又要使用下拉方式(或复制)将函数添加到新的单元格中去,这里就要用到“$”这个符号了,这是一个起固定作用的符号。比如说我始终想在B3:D100内查找数据,则将范围设置为$B$3:$D$100,那么你在下拉的时候这个值就固定为$B$3:$D$100例子:
B列学号匹配C列学号,并显示匹配学号的学生姓名(位于D列)输入公式:=VLOOKUP(B3,$C$3:$D$200,2,0)示意图如下:
就认准了我会是吧。
整理出一个主键来 用vlookup匹配。
对表2的整理给你个示意图
也可以用
这样,单独匹配。
或者用sqlite对齐一下也可。
excel有三种引用,绝对、相对、混合应用。没有模糊引用
excel日期格式如何实现模糊匹配
1、在原始数据的C列插入一辅助列,在C3单元格输入以下公式,然后向下填充公式
=DATE(2000+MID(B3,7,2),LEFT(B3,2),MID(B3,4,2))+TIME(MID(B3,12,2)+IF(MID(B3,10,2)="上午",0,12),MID(B3,15,2),0)
公式分成两个部分:
前面DATE(2000+MID(B3,7,2),LEFT(B3,2),MID(B3,4,2))通过DATE日期函数将B3单元格的前半部分整理成日期;
后面TIME(MID(B3,12,2)+IF(MID(B3,10,2)="上午",0,12),MID(B3,15,2),0)通过TIME时间函数将B3单元格的后半部分整理成时间;
时间函数中增加了IF函数IF(MID(B3,10,2)="上午",0,12)判断上午或下午,考虑是否加上12小时。
2、因为查询的时间没有精确匹配的时间,且辅助列为升序排序的时间数列,因此选择使用LOOKUP函数在升序数据中查找与查找条件小的最大值,并返回对应的D列Temp。
在C2单元格输入=LOOKUP(B2,Sheet1!C:D)
公式表示:在Sheet1表的C列查找比B2单元格数据小的最大值,然后返回对应Sheet1的D列数据。
=VLOOKUP(查找单元格,查找区域,所在的列,1(或不填))
VLOOKUP模糊匹配1或(不填),精确匹配0
C1公式下拉:(自动适应B列有以后有新增人名的情况)
=IF(A1="","",LOOKUP(1,0/FIND(OFFSET(B$1,,,COUNTA(B:B)),A1),OFFSET(B$1,,,COUNTA(B:B))))
如果A列的姓名有可能不存在于B列中,上面公式返回#N/A!错误值,如果遇上这情况想返回空白值,公式改为:(需要EXCEL 2007及以上版本支持)
=IFERROR(LOOKUP(1,0/FIND(OFFSET(B$1,,,COUNTA(B:B)),A1),OFFSET(B$1,,,COUNTA(B:B))),"")
如果用的是EXCEL 2003的,公式要长点:
=IF(SUMPRODUCT(1*ISNUMBER(FIND(OFFSET(B$1,,,COUNTA(B:B)),A1))),LOOKUP(1,0/FIND(OFFSET(B$1,,,COUNTA(B:B)),A1),OFFSET(B$1,,,COUNTA(B:B))),"")
由于题目说的有接近两万条数据,用在C1输入公式下拉两万条记录会慢得累人,现提供一个快速的方法:
在左上角的名称框中输入区域,如C1:C20000 按回车,然后把公式输入到编辑栏,输入完成后不要直接回车,要按CTRL+回车,这样就能快速填充两万条公式了。
Excel模糊查询用的基本都是vlookup函数来实现,下面我们就以人员绩效奖金核对为例,来学习一下如何使用我们的vlookup函数的模糊查找功能。
案例说明:如下图所示,我们需要根据人员的销售额数据,按照右边的奖金规则,快速匹配对应人员的奖金数据。规则为:销售额<500奖金为0;500<=销售额<800奖金50等。
解决方法:
函数公式:
=VLOOKUP(D3,$I$2:$J$8,2,1)
函数解析:
1、这里我们用vlookup模糊查询,可以快速的查找到当前数值向下最接近的一个值,只要将第四参数改为1即可模糊查询;
2、vlookup在进行数据模糊查询的时候,我们需要将对应的数据等级采用从小到大升序的方式排列好。
通过上面的操作方法,我们就通过vlookup模糊查询的方式,查询到了我们需要的人员奖金数据。现在你学会了吗?
表2
表1
E2公式: =VLOOKUP(D2,Sheet2!$A$3:$F$13,MATCH(C2,Sheet2!$B$1:$F$1)+1,1)
VLOOKUP进行模糊查询,MATCH返回分区列号。
可在VLOOKUP的第一个参数Lookup_value中加入通配符*和?实现模糊查找。示例:假定A列数据为姓名,B列数据为分数,现只知道某人名为”树强“不记得姓氏,则可加入通配符*或?实现模糊查找此人分数。公式:=vlookup("*"&"树强",a:b,2,) 或=vlookup("??"&"树强",a:b,2,)
在第一个表的d2列输入:=iferror(if(vlookup(c2,sheet2!b:b,1,false),"死亡"),""),下拉
sheet2改成你第二个表(死亡名单)的名字就可以了。
Excel中可以利用通配符*实现模糊查找替换。软件版本:Office2007方法如下:
1.将下面数据中3开头5结束的部分,全部替换成0:
2.在查找中,输入3*5,在替换为中,输入0,点击全部替换:
3.结果如下: