夜雨聆风学习资料网

ARTICLE · 1192157

Excel如何用VLOOKUP实现跨表数据核对

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 表示精确匹配,这一项绝不能省略或写成其他数字。

  1. 按回车确认公式,D2 立即显示查到的金额。
  2. 双击 D2 右下角的填充柄,公式自动填满整列到最后一行。
  3. 区域用 $A:$C 绝对引用,下拉时查找范围才不会往下跑偏。
  4. 出现 #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,就显示「金额不一致」,直接筛出这一列即可定位问题。

四、常用核对手法对比

方案
优点
缺点
适用场景
VLOOKUP 取回对照值
能比具体内容,不只看有无
查找列必须在区域首列
金额、数量逐笔核对
COUNTIF 判断是否存在
公式简单,计算快
只能判断有无,比不了内容
名单、编号比对
高级筛选或条件格式
不写公式,直观
数据更新后要重做
一次性排查

只想快速知道编号在不在,用 =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,一张表就能标出哪一行对不上。

相关学习资料