在 Excel 里面把两个表格相同数据匹配出来,主流方案分为函数法和条件格式标记法,函数优先选用 VLOOKUP XLOOKUP COUNTIF,其中 XLOOKUP 是新版 Excel 推荐函数,可以直接返回匹配结果并且支持反向查找,COUNTIF 适合只判断是否存在相同数据,不需要取出对应内容,条件格式适合肉眼高亮标注重复项,不需要额外新增辅助列。这个功能的核心原理是以某一列关键字作为比对基准,比如编号 姓名 订单号,拿第一个表格的关键字,去第二个表格的关键字列逐一检索,检索命中就认定是相同数据,检索不到就判定没有匹配项。实际使用的时候一定要确认两边表格的关键字格式统一,文本型数字和数值型数字 前后带空格的数据,就算肉眼看起来一样,也会匹配失败,这是绝大多数新手踩坑的根源。如果是两个独立工作表,或者两个独立工作簿文件,公式写法会增加工作表名称或者工作簿路径,逻辑本身不变,只是引用范围写法有区别。
一 函数方案 可以输出匹配结果
方案一 COUNTIF 判断是否存在相同数据
适合只需要判断,不需要调取第二张表其他列内容,返回 1 代表匹配成功,0 代表没有匹配。
语法基础 COUNTIF 查找区域 查找值
操作步骤
1 打开两个表格所在文件,确认两张表的关键字列,例如表 1A 列是编号,表 2A 列也是编号
2 在表 1 新增辅助列,用来存放匹配判断结果
3 在辅助列第一个数据单元格输入公式
=COUNTIF 表 2!A:A A2
4 下拉填充整列,结果大于 0 就是两个表格相同数据,等于 0 就是没有匹配
5 后续可以筛选辅助列,把大于 0 的行全部筛选出来,就是匹配成功的数据
方案二 VLOOKUP 匹配并带出对应字段
适合找到相同数据之后,还要把第二张表对应的其他列内容提取过来,比如匹配编号之后带出名称 金额。
语法基础 VLOOKUP 查找值 数据表区域 返回第几列 匹配类型
操作步骤
1 选定表 1 辅助列单元格
2 输入公式
=VLOOKUP A2 表 2!A:D 2 0
3 参数解释 A2 是当前表要查找的关键字,表 2!A:D 是第二张表的查找区域,2 代表找到之后返回区域里面第 2 列,0 代表精确匹配
4 下拉填充公式,出现 N/A 代表没有匹配成功,有数值文字代表找到相同数据
5 可以筛选辅助列,剔除 N/A,剩下就是匹配成功的数据
注意 VLOOKUP 限制是查找关键字必须在所选区域第一列,不能反向查找,这是它最大短板
方案三 XLOOKUP 新版 Excel 推荐
XLOOKUP 替代 VLOOKUP,没有查找列必须在首列的限制,容错性更好,是现在优先推荐的函数
语法基础 XLOOKUP 查找值 查找区域 返回区域 找不到时返回的值
操作步骤
1 在表 1 辅助列输入公式
=XLOOKUP A2 表 2!A:A 表 2!B:B "无匹配"
2 含义 拿 A2 编号,在表 2A 列查找,找到之后返回表 2B 列内容,找不到就显示无匹配
3 下拉填充公式,筛选出不是无匹配的行,就是两个表格相同数据
二 条件格式高亮标记方案
不需要新增辅助列,直接把相同数据在原单元格标颜色,适合快速目视筛查
操作步骤
1 选中表 1 需要比对的关键字全部单元格
2 点击顶部开始选项卡,找到条件格式
3 选择新建规则,使用公式确定要设置格式的单元格
4 输入公式 =COUNTIF 表 2!A:A A1>0
5 点击格式,设置填充颜色,确定
6 表 1 里面和表 2 相同数据的单元格自动上色,一眼识别匹配项
三 高级方案 高级筛选 合并查询 Power Query
| 方案 | 适用场景 | 特点 |
|---|---|---|
| 高级筛选 | 一次性提取全部相同数据,不需要辅助列 | 操作偏老,适合老版本 Excel,支持将匹配结果单独输出到新区域 |
| Power Query 合并查询 | 数据量大,几万行以上,后续会持续更新数据源 | 支持刷新,两张表更新之后一键刷新匹配结果,性能优于普通函数,适合大数据 |
Power Query 合并查询简要步骤
1 两张表分别转为超级表,命名表 1 表 2
2 点击数据选项卡,选择合并查询 将查询合并为新查询
3 选择表 1 和表 2,按住选中两边共同关键字列
4 联接种类选择内部联接,内部联接就是只保留两边都存在的相同数据
5 展开表 2 字段,加载到新工作表,得到最终匹配结果
四 匹配失败常见原因排查
关键字格式不一致,一边是文本数字,一边是数值数字,使用 TRIM 函数清除前后空格,使用 VALUE 函数统一成数值格式。
引用区域选错,VLOOKUP 查找区域没有锁定,下拉的时候区域发生偏移,需要加绝对引用符号 $。
存在不可见字符,换行符 空格,肉眼看不出但是系统判定不一样,用 CLEAN 函数清除不可见字符。
跨工作簿的时候源文件关闭,公式会变成错误值,跨文件匹配建议打开源文件,或者优先使用 Power Query。
【常见问题】
问题 1 excel 怎么把两个表格相同数据匹配出来,VLOOKUP 出现 N/A 是什么原因
回答 1 excel 怎么把两个表格相同数据匹配出来出现 N/A,代表当前关键字在第二个表格查找区域没有检索到,优先检查关键字是否有空格 格式类型不一致,同时确认 VLOOKUP 的查找区域第一列就是关键字列,并且匹配参数写的是 0 精确匹配。
问题 2 excel 怎么把两个表格相同数据匹配出来,能不能同时匹配多列关键字
回答 2 excel 怎么把两个表格相同数据匹配出来,单条件函数只能按一列关键字匹配,如果需要多列联合匹配,可以用 XLOOKUP 拼接关键字,或者 Power Query 合并查询的时候同时选中多列共同字段,实现多条件匹配相同数据。
问题 3 excel 怎么把两个表格相同数据匹配出来,两个表格是不同文件可以匹配吗
回答 3 excel 怎么把两个表格相同数据匹配出来,跨独立工作簿是可以实现的,函数公式里面需要带上工作簿名称加工作表名称,缺点是源文件关闭后容易报错,数据量大的场景更推荐 Power Query 跨文件合并查询。
问题 4 excel 怎么把两个表格相同数据匹配出来,匹配之后能不能只保留相同数据删掉不匹配行
回答 4 excel 怎么把两个表格相同数据匹配出来,辅助列得到结果之后,使用筛选功能,筛选匹配成功的值,然后复制结果到新表,或者筛选出不匹配行直接删除,就可以只保留两个表格相同数据对应的整行记录。
【免责申明】
本文操作基于微软 Excel 常规版本编写,XLOOKUP 仅支持 2021 及更新版本 Microsoft 365,旧版本没有该函数,不同版本菜单和函数支持情况存在差异,操作前建议备份原始表格,本文仅作为操作参考,不保证所有版本环境下结果完全一致。


