两张表:Sheet1 里只有订单编号,客户名称和金额在 Sheet2 里。手动复制粘贴对不上号还容易错行,这种跨表匹配的活,一个 VLOOKUP 公式就能批量搞定。
基本写法和参数
在 Sheet1 的空白列输入:
=VLOOKUP(A2, Sheet2!A:C, 3, 0)
四个参数从左到右:A2 是要查的订单编号;Sheet2!A:C 是去哪张表的哪个区域找,跨表就写成表名!区域;3 表示返回区域里第 3 列的内容;0 是精确匹配,日常查数据别省略,写成 1 会变成近似匹配,结果容易乱,只有税率、成绩等级这种区间对照表才用它,而且数据得先按查找列升序排好。
跨到另一个工作簿也行,公式里会自动带上文件名,比如 [客户表.xlsx]Sheet1!A:C。但源文件得开着,路径一变公式就断,稳妥做法是先把两张表合并到同一个工作簿里再写公式。区域懒得手打的话,直接用鼠标框选另一张表的范围,Excel 会自己写上表名,手打最容易漏中间的叹号。
三个高频报错
- 返回 #N/A:先看查找值两边格式是否一致,一边是文本型数字一边是数值就找不到,用分列功能或 VALUE 函数统一;再看有没有首尾空格,套一层 TRIM 处理
- 结果取错列:第三参数是从区域第一列开始数的,区域从哪列开始,返回列就得对应第几列
- 下拉后部分行匹配不上:区域没锁定,下拉时引用跑偏了,选中区域按 F4 加上美元符号,写成 Sheet2!$A:$C 再下拉
两个补充技巧
报错太碍眼,外面套一层 IFERROR:把上面整个公式当第一参数,第二参数填两个连续的英文双引号,表示空文本,匹配不到就显示空白,表格干净很多。
VLOOKUP 只能从左往右查,查找列必须在区域的第一列,这是它最容易翻车的规矩。要把右边的列往左匹配,比如拿姓名查工号,就换 INDEX 配 MATCH,思路反过来而已,原理还是那套精确匹配。
数据量到十万行以上,VLOOKUP 会开始卡。这种规模把两张表丢进 Power Query 合并更利索,公式留着应付日常的中小表格足够了。