今天兰色想偷一下懒,决定让DeepSeek帮我写一个教程(最后才发现,比自已写还累,哈哈)。写什么呢?兰色的函数教程里总结过Vlookup的31种用法,那就看DeepSeek是否也总结出来。当然兰色也会对每个公式进行点评,看DeepSeek的Excel水平到底怎么样。
于是兰色打开DeepSeeK的官方网页(https://www.deepseek.com/),提交了要求:
兰色也特别强调不能用Xlookup等函数,因为兰色之前也让它生成过,大半都是用期他查找函数凑数。
看一下DeekSeek的结果吧:
1. 精确匹配
2. 模糊匹配(区间查找)
3. 跨工作表查找
4. 跨工作簿查找
5. 结合IFERROR处理错误
6. 多条件查找(辅助列)
7. 返回多列数据(动态列索引)
8. 反向查找(使用IF数组)
9. 通配符查找部分匹配
10. 查找返回多个结果(数组公式)
11. 处理数字和文本格式转换
12. 查找最后一个匹配项
13. 结合MATCH动态列索引
14. 结合INDIRECT动态表引用
15. 处理合并单元格
16. 近似匹配查找最近值
17. 结合COLUMN函数自动填充公式
18. 查找并连接多个结果
19. 条件求和(结合SUM)
20. 条件计数(结合COUNT)
21. 查找时区分大小写(结合EXACT)
22. 动态调整查找范围
23. 两列合并查找
24. 使用VLOOKUP进行数据验证
25. 查找并替换特定值
26. 处理重复值返回首个或指定顺序
27. 结合TEXT函数格式化查找值
28. 使用VLOOKUP进行分级评定(如成绩等级)
29. 查找并提取特定部分的数据
30. 结合OFFSET进行动态范围
31. 结合CHOOSE进行多表查询
下是 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
)要求数据升序排列。
兰色注:提示的很好,赞!
兰色说:DeepSeek给出的31个用法中,有7个公式是错的(兰色已逐一纠正),看来DeepSeek的Excel水平还需再进化,兰色暂时还不会失业,哈哈。另外DeepSeek最大的软肋是图表,估计几年内做不了复杂的图表。
兰色根据多年经验,录制了一全套适合新手和初中级阶段用户学习的Excel教程。包括Excel表格90个函数用法(即将更新几十个新函数)、119个使用技巧、透视表从入门到精通50集、图表从入门到精通209集。(绿卡会员有效期内免费)详情点击下方链接