Excel两个表格怎么匹配相同数据并找出对应内容
两个Excel表格要按相同数据对应起来,关键是先选好一列共同的关键字段,再用查找函数把另一张表的内容拉过来。本文讲清关键字段怎么选、XLOOKUP和VLOOKUP怎么写、找不到时怎么处理,以及结果怎么核对。
把两个 Excel 表格对应起来,是日常工作里很常见的事:一张是名单,一张是成绩;一张是订单,一张是付款记录;一张是员工花名册,一张是考勤。两张表各有一部分信息,需要按某个相同的字段,把另一张表的内容“对上号”。手动一行一行找,表越长越容易出错。
这篇文章写给需要做这类匹配的人。读完后,你能确定用哪一列做关键字段,写出查找公式把对应内容拉过来,判断哪些记录在两表中都有,并且知道怎样检查结果是否可靠。文中用到的方法是 Excel 通用的查找函数,也可以在 OmniDoc 桌面客户端的 UniCell 表格中按同样思路操作。
两表怎么匹配?一句话结论
匹配的核心是一列共同的关键字段,它在两张表中都存在,并且每个值不重复。选定之后,再根据你要的结果选函数。
| 你的情况 | 推荐做法 | 原因 |
|---|---|---|
| 要把另一张表的一列或几列内容拉到当前表 | XLOOKUP(版本支持时)或 VLOOKUP | 按关键字段查找,返回指定列的值,适合大多数对应需求 |
| 只想知道某条记录在另一张表里有没有 | COUNTIF | 返回出现次数,大于 0 即为存在,不需要返回其他列 |
| 关键字段不在左列,VLOOKUP 用不了 | INDEX 加 MATCH 组合 | 可以从任意位置的列取值,不受左右位置限制 |
| 两表关键字段有重复值 | 先去重或补充辅助列,再匹配 | 重复键会让查找只取到第一条,结果不可靠 |
开始之前:先确认这几点
动手写公式之前,花几分钟确认下面几项,能避免大部分返工。
- 关键字段是否真的不重复。 工号、订单号、身份证号这类字段通常不重复;姓名、日期、部门重复率高,不适合作关键字段。如果必须用姓名,先确认同名情况。
- 两表的关键字段是否格式一致。 一张表的编号是文本,另一张表是数字,看起来相同,实际匹配不上。可以选中一列,观察单元格的数字格式,或在旁边用公式检查长度。
- 关键字段是否有多余空格。 从系统导出的数据常带首尾空格或不可见字符,导致“看起来一样、查不到”。可以用 TRIM 函数清理后再匹配。
- 两张表是否放在同一个文件里。 同一工作簿的不同工作表,引用时要写清工作表名;分散在不同文件里,公式会更复杂,建议先合并到一个文件。
- 表格是不是从 PDF 来的。 如果数据只有 PDF 版本,可以先用 OmniDoc 的 PDF 编辑器导出为 Excel,再开始匹配;扫描版 PDF 需要先做 OCR,识别结果要逐项核对。
用 XLOOKUP 把对应内容拉到同一张表的步骤
下面以一个例子说明:表一(Sheet1)有工号在 A 列、姓名在 B 列,需要从表二(Sheet2)把部门取过来。表二的工号在 A 列,部门在 C 列。
- 把两张表放进同一个文件。 确保表一和表二都在当前工作簿中,并记下表二的工作表名,例如 Sheet2。
- 在表一的空白列写表头。 例如在 C1 写“部门”,这一列将存放匹配结果。
- 在 C2 输入查找公式。 写作
=XLOOKUP(A2,Sheet2!A:A,Sheet2!C:C,"未找到"),含义是:拿表一 A2 的工号,去表二 A 列找,找到后返回表二 C 列的值,找不到则显示“未找到”。 - 如果版本不支持 XLOOKUP,改用 VLOOKUP。 写作
=VLOOKUP(A2,Sheet2!$A:$C,3,FALSE),其中 3 表示返回查找区域的第 3 列,FALSE 表示精确匹配。注意 VLOOKUP 要求关键字段在查找区域的左列。 - 向下填充公式。 双击或拖动单元格右下角的填充柄,让公式应用到所有行。确认每一行引用的 A2 都随行号变化。
- 检查返回结果。 随机看几行,对照表二确认部门是否正确;看到“未找到”或错误值的行,留待后面处理。
- 需要判断是否存在时,再加一列 COUNTIF。 在 D2 输入
=COUNTIF(Sheet2!A:A,A2),结果大于 0 表示表二中存在该工号,等于 0 表示不存在。把这一列筛选出 0,就能找出只在表一中出现的记录。
做完后逐项核对
公式算出结果,不代表结果正确。下面几项检查,可以帮你发现漏配和错配。
| 检查项 | 怎么看 | 有问题怎么办 |
|---|---|---|
| 行数是否对得上 | 统计表一的有效行数,与匹配结果的非空行数比较 | 行数少了,检查公式是否填充到最后一行 |
| 错误值和“未找到”数量 | 筛选或统计未找到的记录 | 核对这些关键字段在另一表中是否真的缺失,或是格式、空格问题 |
| 抽样核对 | 随机抽取 10 行左右,人工对照两张原表 | 结果不一致时,检查引用的列是否正确,绝对引用符号是否写对 |
| 重复关键字段 | 用 COUNTIF 统计关键字段出现次数,大于 1 的即为重复 | 先处理重复记录,保留正确的那一条,再重新匹配 |
| 文本与数字 | 对比关键字段在两表中的格式 | 统一转换为相同格式后重新计算 |
如果表格里有涉及合同金额、医疗数据或法律条款的内容,匹配结果需要人工复核,机器计算不能替代核对。
📊 核心对比
常见的匹配方式有四种,各自的适用范围不同。
| 方法 | 能做什么 | 注意事项 |
|---|---|---|
| XLOOKUP | 按关键字段返回任意列的值,支持找不到时的默认提示 | 需要较新的版本支持,旧版本无法使用 |
| VLOOKUP | 按关键字段返回指定列的值,几乎所有版本都支持 | 关键字段必须位于查找区域左列,列号写错会返回错误内容 |
| INDEX 加 MATCH | 灵活,可以从任意位置取值 | 公式较长,初学者容易写错两个参数的范围 |
| COUNTIF | 判断记录是否存在,统计出现次数 | 只能判断有无,不能返回其他列的内容 |
❓ 常见问题(FAQ)
1. 公式明明写对了,为什么还是显示错误值?
常见的原因是关键字段格式不一致,比如一边是文本型数字,另一边是数值。其次是多余的空格。先统一格式、用 TRIM 清理空格,再重新计算。
2. 两个表格的关键字段都是姓名,可以直接匹配吗?
可以,但风险较高。同名的人会导致匹配到错误的记录。如果没有工号之类的编号,建议用姓名加部门、入职日期等组合成辅助列,再做匹配。
3. 如何把相同的数据找出来并标记?
用 COUNTIF 判断是否存在,再用条件格式或筛选功能,把结果大于 0 的行突出显示。这样可以直观地看到两表中哪些记录是相同的。
4. 数据是从网页或 PDF 复制过来的,匹配不上怎么办?
网页复制的内容常带隐藏字符和多余空格,PDF 转换的表格也可能出现合并单元格或换行。先清理这些内容,去掉换行和空格,再进行匹配。PDF 表格可以先用 PDF 编辑器导出为 Excel,减少手工整理。
5. 两张表的数据量很大,公式会不会很慢?
数据量大时,引用整列(如 A:A)会增加计算量。可以把引用范围限定在实际数据的行,例如 Sheet2!A2:A5000,计算速度会更快。
📝 总结
两个 Excel 表格要做匹配,先选定两表都有、值不重复的关键字段,统一格式并清理空格,再用 XLOOKUP 或 VLOOKUP 拉取对应内容,用 COUNTIF 判断是否存在。结果出来后,核对行数、检查未找到的记录并抽样对照原表,这样得到的结果才可靠。


