巧用LOOKUP和Vlookup,让会计工作变轻松!
文章来源:网络
发布时间:2019-06-12 09:21
阅读:3140次

纵向查找函数VLOOKUP
1、功能:VLOOKUP是一个纵向查找函数,用于表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。
2、使用格式:
=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
翻译成中文就是: 查找(要查找的值,在哪找,返回第几列内容,找还是近似找)
3、参数说明:
lookup_value:可以是数值、引用或文本字符等。当VLOOKUP函数参数省略查找值时,表示用0查找。
table_array:查询值所处的区域,使用对区域或区域名称的引用,有时需要跨表格查找。
col_index_num:返回第几列内容,col_index_num为 1 时,返回 table_array 列的数值,col_index_num 为 2 时,返回 table_array 第二列的数值,以此类推。如果 col_index_num 小于1,函数 VLOOKUP 返回错误值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数VLOOKUP 返回错误值#REF!。
range_lookup: FALSE或0为精准匹配,就是查询对象必须长得一模一样 ,少根汗毛都不行。一般情况都要求精准匹配,如果找不到,则返回错误值 #N/A。如果这个值为TRUE或1或者直接省略这是模糊匹配,为查找近似值。
查找函数LOOKUP
1、功能:可以返回向量(单行或单列区域)的数值。
2、使用格式:
=LOOKUP(lookup_value,lookup_vector,result_vector)
3、参数说明:
第一个参数:lookup_value 为要查找的数值,可以是数字、文本、逻辑值或包含数值的名称或引用。
第二个参数:lookup_vector 为只包含一行或一列的区域。
第三个参数:result_vector 的数值可以为文本、数字或逻辑值。
这个函数主要用于在查找范围中查询指定的查找值,并返回另一个范围中对应位置的值。该函数支持忽略空值、逻辑值和错误值来进行数据查询,几乎可以完成VLOOKUP函数和HLOOKUP函数的所有查找任务,接下来咱们就一起看看LOOKUP函数的常用套路。
一、返回B列最后一个文本:
=LOOKUP("々",B:B)
或是=LOOKUP("做",B:B)
二、返回B列最后一个数值:
=LOOKUP(9E+307,B:B)
三、填充合并单元格
如下图所示,B列姓名使用了合并单元格,使用以下公式可以得到完整的填充:
=LOOKUP("做",B$2:B2)
四、返回A列*后一个非空单元格内容
=LOOKUP(1,0/(A:A<>""),A:A)
简单说说公式的计算过程:
先使用A:A<>""判断A列是否不等于空单元格,得到一组有逻辑值TRUE和FALSE构成的内存数组。
然后用0除以这些逻辑值,在四则运算中,逻辑值TRUE相当于1,FALSE相当于0,相除之后,得到由错误值和0构成的新内存数组。其中的0,就是0/TRUE的结果,表示符合条件。
最后用1作为查找值,在这个内存数组中找到0的位置,并返回第三参数中对应位置的内容。
如果有多个符合条件的记录,LOOKUP默认以最后一个进行匹配。
五、逆向查询
如下图,要根据E3单元格的商品名称,查询对应的销售经理。公式为:
=LOOKUP(1,0/(C2:C10=E3),A2:A10)
单条件查询的模式化写法为:
=LOOKUP(1,0/(条件区域=条件),查询区域)
六、多条件查询
如下图,要根据F3单元格的商品名称和G3单元格的部门,查询对应的销售经理。公式为:
=LOOKUP(1,0/((D2:D10=F3)*(B2:B10=G3)),A2:A10)
多条件查询的模式化写法为:
=LOOKUP(1,0/((条件区域1=条件1)*(条件区域2=条件2)),查询区域)
七、模糊查询等级
如下图,要根据B列销售业绩返回对应的评定标准,E~F列为标准对照表。
C2单元格公式为:
=LOOKUP(B2,$E$3:$F$6)
这种方法可以取代IF函数完成多个区间的判断查询,前提是对照表的首列必须是升序处理。
八、提取有规律的数字
如下图,要提取出B列混合内容中的数值。
公式为:
=-LOOKUP(1,-RIGHT(B2,ROW($1:$9)))
本例中,数值都位于右侧,因此先用RIGHT函数从B2单元格右起第一个字符开始,依次提取长度为1至99的字符串。
添加负号后,数值转换为负数,含有文本字符的字符串则变成错误值。
LOOKUP函数使用1作为查询值,在由负数、0和错误值构成的数组中,忽略错误值提取*后一个等于或小于1的数值。最后再使用负号,将提取出的负数转为正数。
九、带合并单元格的查询
如下图,根据D2单元格的姓名查询A列对应的部门。
公式为:
=LOOKUP("做",INDIRECT("A1:A"&MATCH(D2,B1:B10,0)))
MATCH(D2,B1:B10,0)部分,查找D2单元格的姓名在B列中的位置。返回结果为7。
用字符串"A1:A"连接MATCH函数的计算结果7,变成新字符串"A1:A7"。
接下来,用INDIRECT函数返回文本字符串"A1:A7"的引用。
如果MATCH函数的计算结果是5,这里就变成"A1:A5"。同理,如果MATCH函数的计算结果是10,这里就变成"A1:A10"。也就是这个引用区域会根据D2姓名在B列中的位置动态调整。
最后用=LOOKUP("做",引用区域)返回该区域中*后一个文本的内容。
简化后的公式相当于:
=LOOKUP("做",A1:A7)
返回A1:A7单元格区域中最后一个文本,也就是江北公司,得到“苏明哲”所在的部门。
此外还可以使用2个Vlookup函数实现Lookup也无法完成的查询。
【例】如下图所示左侧是入库明细表,在右侧需要把所有商品的历史入库价格都列出来,结果如G列所示。
想实现这种合并查询,lookup函数是无法做到的,但2个Vlookup却可以完成。
在D2列设置公式:
=IFERROR(VLOOKUP(B2,B3:D14,3,0),"")&","&C2
公式说明:
用vlookup函数在本行之后查找D列同类商品的连接信息,如果查不到则用iferror函数返回空,如果查到则连接本行的C列入库价格。
结果是在D列会显示商品从下至上的连接结果,而每个商品第一次出现的行D列是所有该商品的入库价格。
接下来在G列设置公式,根据F列商品名称从左表中查找返回D列的连接结果:
=MID(VLOOKUP(F2,$B$2:$D$14,3,),2,99)
公式说明:
用MID函数把Vlookup查找结果最前面的逗号截掉。
免费领取 2025年证书课程学习资料
请大家认真填写以下信息,获取2025年证书课程学习资料包,会以网盘链接的形式给到大家,点击免费领取后请尽快保存。
*姓名不能为空
*手机号错误
*验证码错误

Otis

CICPA会员,ACCA准会员,F8获单科全球状元 暨南大学优秀硕士毕业论文获得者 ,多年四大会计师事务所从业经验,多次参与境内外各行业企业年度审计及IPO审计,现任CPA审计讲师,对审计充满热情,授课干货满满、逻辑顺畅、结构清晰、善于总结,擅长通过简练的图表和生动的举例,将晦涩难懂的知识点化繁为简,对命题规律、重点考点把握准确。
