一张表是工号,一张表是姓名和工资,想把数据对过来,手动复制几十行又慢又容易错。WPS 表格里的 VLOOKUP 就是干这个的,wps vlookup函数的使用方法说难也不难,卡住的人多半是参数没填对。
四个参数分别管什么
写法是 =VLOOKUP(查找值, 查找区域, 返回列号, 匹配方式)。查找值是要找的内容,比如工号所在的 A2;查找区域是个单元格范围;返回列号从区域第一列开始数;匹配方式填 0 表示精确匹配,填 1 表示近似匹配。
拿工号查姓名举例:=VLOOKUP(A2,Sheet2!$A$2:$D$100,2,0)。A2 是工号,Sheet2 的 A 到 D 列是数据源,姓名在第二列,0 表示必须完全一致。日常对表基本都用 0。
区域一定要用 $ 锁住
公式往下拖的时候,查找区域会跟着往下跑。写成 A2:D100,拖到第三行就变成 A3:D101,数据源跟着偏,结果自然不对。选中区域按 F4 加上美元符号,变成 $A$2:$D$100 就固定住了。
报 #N/A 先查这三处
- 查找值不在区域的第一列。VLOOKUP 只能从左往右找,工号必须在 A 列。
- 格式不一致。一边是文本,一边是数字,看着一样也匹配不上,可以用分列或 VALUE 函数转换。
- 有多余空格。从系统导出的数据经常带空格,套一层 TRIM 再查。
报 #REF! 一般是返回列号超过了区域的列数,比如区域只有 3 列,第四个参数却写了 4。
要反向查找就换函数
根据姓名反查工号,VLOOKUP 干不了,因为它不能往左找。老版本 WPS 用 INDEX 加 MATCH 组合,新版可以直接用 XLOOKUP,语法是 =XLOOKUP(查找值,查找列,返回列)。不确定自己的版本支不支持,输入时看有没有函数提示就行。
查不到结果又不想看到一片 #N/A,可以套 IFERROR 包一层,比如 =IFERROR(VLOOKUP(A2,Sheet2!$A$2:$D$100,2,0),0)。把 wps vlookup函数的使用方法练熟,对账、合并表格这类活能省下大半天。