[忤旭]《Excel》VLOOKUP数据匹配

大家好,我是忤旭!
今天这期并不是游戏攻略分享,而是Excel中VLOOKUP函数的使用心得分享。Excel是微软开发的一款电子表格处理软件,它既能使用基础功能完成电子表格的基础编辑,又能使用函数功能完成高级处理,比如制作《全境封锁2》的计算器。
这期的灵感来源于我一个不懂计算机的朋友,他需要制作一张表格,表格要求是抬头要用下拉选项选择,清单自填。一开始他只要求可选3个抬头,当我使用IF函数完成后,他说:“以后你不在我身边时,我想添加抬头该怎么办?”。这时问题就上升到了动态增加/减少下拉选项,无上限数据匹配。也便有了今天这期的分享。
文章基于Excel版本2019,详细讲述了如何制作下拉选项、少量数据匹配IF函数和大量数据匹配VLOOKUP函数,希望对需要的朋友有所帮助和启发。
一.使用数据验证制作下拉选项





二.使用IF函数进行少量数据匹配
先来讲解一下IF函数格式
=IF(logical_test , [value_if_true] , [value_if_false])
logical_test:必填项,代表条件语句,如E1=0,意为E1单元格等于0吗?结果要么是TRUE,要么是FALSE
[value_if_true]:可缺省项,默认为0,代表当结果是TRUE时的函数返回值。
[value_if_false]:可缺省项,默认为0,代表当结果是FALSE时的函数返回值。
函数返回值是指整个函数运算结束后所得到的值。
假设在A1单元格内是一条IF函数,它运算结束后得到的值为0,那A1单元格中就填入0。
例子
=IF(E1=0 , 1 , 2)
意为先判断E1是否等于0,若等于0,则函数返回1,否则函数返回2
=IF(E1=0 , IF(E2=0 , 1 , 2) , 3)
这是IF函数的嵌套用法,意为先判断E1是否等于0,若等于0,则函数返回IF(E2=0 , 1 , 2),但返回的并不是一个值而是别一个函数,所以得将这个返回的函数继续计算,再次判断E2是否为0,若等于0,则函数返回1,否则函数返回2。到此E1=0的情况分析完毕,当E1不等于0时,则函数返回3。
以上就是IF函数的简单用法。
那如何使用IF函数进行少量数据匹配呢?


图中函数为=IF(B1=E1,F1,IF(B1=E2,F2,F3))
功能可以概括为按照E列第几行来返回F列第几行
功能分析为当B1=E1时,则返回F1,否则返回IF(B1=E2,F2,F3),这里是看看选择的是A吗?是就返回A对应的1,否则继续往下排查。
IF(B1=E2,F2,F3)同理为当B1=E2时,则返回F2,否则返回F3,这是看看选择的是B吗?是就返回B对应的2,否则一定是C,然后返回C对应的3。
三.使用VLOOKUP函数进行大量数据匹配
同样先来讲一下VLOOKUP函数的格式
=VLOOKUP(lookup_value , table_array , col_index_num , [range_lookup])
lookup_value:必填项,想要查找的数据。
table_array:必填项,以供查找的数据关系表。
col_index_num:必填项,当在数据关系表中找到目标数据时,想要返回的(目标数据右边的第i列的)数据的列号i。
[range_lookup]:选填项,0代表精确查找,源数据和目标数据必须完全相同,1代表粗略查找,常用于数值查找中,当找不到和源数据相同的目标数据时,返回比源数据小的目标数据对应的数据。
例子
单个单元格数据匹配

=VLOOKUP(B1 , E1:F5 , 2 , 0)
意为从E1:F5区域中找到B1并返回E1:F5区域中的第2列,可见如果B1中是A则返回E1:F5区域中第2列的1,如果B1中是B则返回E1:F5区域中第2列的2。
多个单元格数据匹配

但要注意的是,快速填充会改变函数中的相对引用地址,即数据关系表的地址会被改变,因此在快速填充前要先将函数中数据关系表的地址变为绝对引用,使用快捷键F4进行相对引用和绝对引用快速转换。
即更正为=VLOOKUP(B1 , $E$1:$F$5 , 2 , 0)

使用VLOOKUP函数可以快速对多个单元格进行数据匹配,效率是IF函数无法比拟的,但IF函数一定也可以实现多个单元格的数据匹配,只不过需要付出更多代价(函数)。
最后是动态添加/减少下拉选项和数据关系表
先实现动态添加/减少下拉选项





再实现动态添加/减少数据关系表

