ARTICLE · 1192157
Excel如何用VLOOKUP实现跨表数据核对
用 VLOOKUP 做跨表数据核对,思路只有一句话:在一张表里按编号查出另一张表的对应值,再把查到的值与本表的值比一比。相同就是核对通过,不同或用 #N/A 标出的就是问题行。下面用订单对账做完整演示。
一、先把两张表放进同一个工作簿
假设「表1」是系统导出的订单数据,A 列订单号、C 列金额;「表2」是手工台账,同样是 A 列订单号、C 列金额。核对公式写在表2的 D 列。
两个工作表可以是同一文件里的不同 Sheet,跨表引用不需要打开另一个文件,这是 VLOOKUP 跨表核对最方便的地方。
二、用 VLOOKUP 把对照值取过来
在表2的 D2 输入:
=VLOOKUP(A2,表1!$A:$C,3,0)
四个参数依次是:A2 是要查的订单号;表1!$A:$C 是跨表引用表1的 A 到 C 列;3 表示返回该区域的第 3 列,也就是金额;最后的 0 表示精确匹配,这一项绝不能省略或写成其他数字。
按回车确认公式,D2 立即显示查到的金额。 双击 D2 右下角的填充柄,公式自动填满整列到最后一行。 区域用 $A:$C绝对引用,下拉时查找范围才不会往下跑偏。出现 #N/A 说明该订单号在表1里找不到,这本身就是一条核对结论。
工作表名带空格、数字或特殊符号时,要用单引号包住,例如 '1月'!$A:$C。
三、把两个数字直接比出结论
取到对照值后,再套一层 IF,让结果一眼可读:
=IF(ISNA(VLOOKUP(A2,表1!$A:$C,3,0)),"表1无此订单",IF(C2=VLOOKUP(A2,表1!$A:$C,3,0),"一致","金额不一致"))
Excel 2007 及以上版本可以写得更短:
=IFERROR(IF(C2=VLOOKUP(A2,表1!$A:$C,3,0),"一致","金额不一致"),"表1无此订单")
假设 A2 是 D2024001,表1 对应金额 1200、表2 记的也是 1200,D2 显示「一致」;若表2 误写成 120,就显示「金额不一致」,直接筛出这一列即可定位问题。
四、常用核对手法对比
只想快速知道编号在不在,用 =IF(COUNTIF(表1!$A:$A,A2)>0,"存在","缺失") 就够了。
五、跨表核对最容易踩的三个坑
- 格式不一致
:一边是文本型数字、一边是数值,看着一样却返回 #N/A。用 =ISTEXT(A2)检查,或统一用「数据-分列」刷成同一格式。 - 多余空格
:编号尾部带空格同样查不到,用 TRIM 清洗: =VLOOKUP(TRIM(A2),表1!$A:$C,3,0),不可见字符可用 CLEAN 处理。 - 查找列有重复
:VLOOKUP 只返回第一条匹配结果,重复编号要先用 COUNTIF 统计出现次数,再人工确认。
六、常见问题
核对结果显示错误怎么办?先只保留 VLOOKUP 单独返回的值,确认取数没错,再套 IF 做比较,两步分开排查最快。
WPS 表格能做吗?能。跨表引用写法一致,在 WPS 表格里输入 表1! 时还会自动提示工作表名。
小结:VLOOKUP 跨表核对的关键是精确匹配的 0 和绝对引用,再把结果交给 IF 或 IFERROR,一张表就能标出哪一行对不上。















































































