我让DeepSeeK总结Vlookup函数31种用法,吓的想辞职

Excel精英培讯 2025-02-10 16:52:37

VLOOKUP函数31种用法总结,涵盖不同场景和技巧,所有公式均基于VLOOKUP实现:

一、基础查找

精确匹配=VLOOKUP(A2, B:C, 2, FALSE)查找A2在B列对应的C列值,精确匹配。

注:基本用法,但实际工作中常用0替代Flase

模糊匹配(区间查找)=VLOOKUP(A2, D:E, 2, TRUE)查找A2在D列对应的E列值,适用于数值区间(如成绩评级)。

注:D列值必须从升序排列,True常省略

跨工作表查找=VLOOKUP(A2, Sheet2!A:B, 2, FALSE)跨工作表查询Sheet2的数据。

注:配合indirect函数还可以实现动态查找

跨工作簿查找=VLOOKUP(A2, [Book2.xlsx]Sheet1!A:B, 2, FALSE)引用其他工作簿数据(需打开目标文件)。

注:配合indirect函数还可以实现动态查找

二、高级技巧

反向查找(左→右)=VLOOKUP(A2, CHOOSE({1,2}, C:C, B:B), 2, FALSE)用CHOOSE交换列顺序,实现从右向左查。

注:CHOOSE({1,2}等同于IF({1,0}

多条件查找=VLOOKUP(A2&B2, IF({1,0}, C:C&D:D, E:E), 2, FALSE)按Ctrl+Shift+Enter输入数组公式,合并条件列。

注:利用IF{1,0}左右换位,标准答案

返回多列数据=VLOOKUP($A2, $B:$E, COLUMN(C1), FALSE)用COLUMN函数动态调整返回列,向右拖动填充。

注:查询表和原表列顺序要完全一致

通配符查找=VLOOKUP("*"&A2&"*", B:C, 2, FALSE)使用*匹配包含A2的文本(如模糊搜索)。

注:也可以用?表示单个字符

查找第N个匹配项=VLOOKUP(A2, IF(COUNTIF(B$1:B1, A2)=0, B:C, ""), 2, FALSE)结合辅助列跳过已查找到的值。

注:公式错误

正确答案是在最前添加辅助列,用Countif生成内容+序号,再根据这一列查找

辅助列公式:=B1&COUNTIF(B$1:A1,B1)

查找公式:Vlookup(E1&N,A:C,2,0)

三、动态引用

动态列索引(MATCH组合)=VLOOKUP(A2, B:E, MATCH("目标列", B1:E1, 0), FALSE)用MATCH定位列号,适应列顺序变化。

注:根据查找表格的标签确定要查找的列数

动态表范围(INDIRECT组合)=VLOOKUP(A2, INDIRECT("Sheet"&B2&"!A:C"), 3, FALSE)根据B2的值动态切换工作表。

注:最常用的是INDIRECT(表名所在单元格&"!A:C")

动态偏移范围(OFFSET组合)

=VLOOKUP(A2, OFFSET(B1,0,0,COUNTA(B:B),3), 3, FALSE)

自动扩展数据范围,避免固定区域。

注:Offset第4个参数是总行数

四、错误处理

屏蔽错误值(IFERROR组合)=IFERROR(VLOOKUP(A2, B:C, 2, FALSE), "未找到")找不到时显示“未找到”而非#N/A。

注:标准答案

强制转换为数值查找=VLOOKUP(A2+0, B:C, 2, FALSE)当查找值为文本型数字时,用+0转为数值。

注:利用四则运算把文型转换为数值型

强制转换为文本查找=VLOOKUP(TEXT(A2, "@"), B:C, 2, FALSE)将数值转为文本格式匹配。

注:用A2&""更简单

五、复杂场景

合并单元格查找=VLOOKUP(LOOKUP("座", A$1:A2), D:E, 2, FALSE)填充合并单元格后向上查找最后一个非空值。

注:用lookup查找上面的最后一个值

区分大小写查找=VLOOKUP(TRUE, IF(EXACT(B:B, A2), C:C, ""), 1, FALSE)按Ctrl+Shift+Enter输入数组公式,区分大小写。

注:公式是错的,-这个公式兰色写过:

=VLOOKUP(TRUE,IF({1,0},EXACT(A$2:A7,E2),B$2:B7),2,0)

返回最后一个匹配项=VLOOKUP(A2, SORT(B:C, 1, -1), 2, FALSE)降序排序后查找第一个匹配项(等效最后一个)。

注:这个创意不错,但公式是错的,正确的应为

=VLOOKUP(F2, SORTBY(B2:C7,100-ROW(1:6)), 2, FALSE)

多表联合查询=IFERROR(VLOOKUP(A2, Sheet1!B:C, 2, FALSE), VLOOKUP(A2, Sheet2!B:C, 2, FALSE))优先查Sheet1,找不到再查Sheet2。

注:这个公式没问题

二维表矩阵查找=VLOOKUP(A2, B:D, MATCH(B1, B1:D1, 0), FALSE)动态匹配行和列的交点值。

注:和10重复了

六、数据操作

提取特定字符后的值=VLOOKUP("*-"&A2, B:C, 2, FALSE)查找包含“-A2”结尾的文本。

注:通配符的一个细节应用,也算过关

条件求和=SUM(VLOOKUP(A2, B:D, {2,3}, FALSE))返回多列数值并求和(按Ctrl+Shift+Enter)。

注:第3个参数为数组时,配合Sum可以多列求和

条件计数=COUNTIF(VLOOKUP(A2, B:C, 2, FALSE), ">100")查找结果后统计大于100的数量。

注:Countif第一个参数必须是单元格引用,无法使用处理后的值,可以用Countifs多个条件完成该类型计算。

数据分级(如工资评级)=VLOOKUP(A2, {0,"低";5000,"中";10000,"高"}, 2, TRUE)直接构建常量数组进行评级。

注:第4个参数省略或为1和true时,可以完成数据区间查找。

七、扩展应用

批量查找(数组公式)=VLOOKUP(A2:A10, B:C, 2, FALSE)按Ctrl+Shift+Enter输入,批量返回结果数组。

注:公式没问题,反倒说明文字错了,因为老版中第一个参数不能使用区域,而新版中可能,但不需要使用数组形式输入,直接输入即可。

查找并替换特定值=IF(VLOOKUP(A2, B:C, 2, FALSE)="旧值", "新值", VLOOKUP(...))嵌套IF替换指定结果。

注:公式没问题,也算一个细节应用吧。

动态下拉菜单联动数据验证中引用VLOOKUP结果生成二级下拉菜单。

注:二级下拉是用indirect生成的,错!

查找并拼接文本=VLOOKUP(A2, B:C, 2, FALSE) & "-" & VLOOKUP(A2, B:D, 3, FALSE)合并两列查找结果。

注:公式没问题,但这样算用法之一,太应付了吧

八、特殊技巧

跳过隐藏行查找=VLOOKUP(A2, SUBTOTAL(103, OFFSET(B1, ROW(B:B)-1,)) * C:C, 1, FALSE)仅查找可见行数据(需复杂公式)。

注:公式错的,兰色以前写过

=VLOOKUP(E19,IF(SUBTOTAL(103,OFFSET(A1,ROW(1:13),0)),B2:C14),2,0)

根据日期查找最近记录=VLOOKUP(MAX(IF(B:B<=TODAY(), B:B)), B:C, 2, TRUE)按Ctrl+Shift+Enter输入,查找不超过当前日期的最近值。

注:公式没问题,勉强算一个用法吧

结合TEXT函数格式化查找=VLOOKUP(TEXT(A2, "yyyy-mm-dd"), B:C, 2, FALSE)强制日期格式一致后查找。

注:公式没问题,很小众的一个应用

注意事项

按Ctrl+Shift+Enter输入的公式为数组公式。

使用绝对引用(如$B$2:$C$100)避免拖动公式时范围变化。

模糊匹配(TRUE)要求数据升序排列。

4 阅读:1002
评论列表