Σ表格公式学堂EXCEL FORMULA & SCENARIO
进阶数据查找匹配 · 3 个 Sheet

两张表对账:找出不匹配的记录

两个系统的订单金额逐笔核对,标出差异和缺失。

1

场景背景

财务每月要对账:系统 A 导出一份订单金额,系统 B 导出另一份。两边单号可能对不上、金额可能不一致。目标是生成一张差异表:每笔单的 A 金额、B 金额、差额、状态(一致 / 金额不符 / B 表缺失)。

2

数据结构

共 3 个 Sheet
Sheet:系统A
字段含义示例值
订单号对账主键SO-001
金额A 系统金额225
Sheet:系统B
字段含义示例值
订单号对账主键SO-001
金额B 系统金额225
Sheet:差异表
字段含义示例值
订单号以 A 表为主键SO-002
A金额 / B金额两边金额1798 / 1898
差额A - B-100
状态IF 判断结果金额不符
3

解决步骤

1
第 1 步:以 A 表为主键拉出订单号
差异表 A 列直接引用系统A 的订单号,保证不漏单。
=系统A!A2
2
第 2 步:去 B 表找对应金额
用 VLOOKUP 按单号找 B 表金额,找不到时用 IFERROR 返回「无此单」文字。
=IFERROR(VLOOKUP(A2,系统B!A:B,2,FALSE),"无此单")
3
第 3 步:算差额
只有当 B 表有金额时才相减,否则显示 —,避免文本参与减法报错。
=IFERROR(B2-C2,"—")
4
第 4 步:用 IF 标出状态
先判断 B 金额是不是数字(ISNUMBER),不是就是 B 表缺失;是数字再看差额是否为 0。
=IF(ISNUMBER(C2),IF(D2=0,"一致","金额不符"),"B表缺失")
4

完整公式与逐段拆解

=IF(ISNUMBER(C2),IF(D2=0,"一致","金额不符"),"B表缺失")
ISNUMBER(C2)先判断 B 金额是否取到了(数字才算取到)
D2=0,"一致"差额为 0 说明两边对得上
"金额不符"有金额但差额不为 0
"B表缺失"B 表根本没有这笔单号
5

多 Sheet 示例

在编辑器中打开 ↗
ABCDE
1订单号A金额B金额差额状态
2SO-001225.00225.000.00一致
3SO-0021,798.001,898.00-100.00金额不符
4SO-003175.00175.000.00一致
5SO-004795.00无此单—B表缺失
6SO-005675.00无此单—B表缺失
7SO-0060.00240.00-240.00金额不符
当前表:差异表 · 公式单元格 E2 · 绿色底为公式,蓝色底为动态数组溢出结果

差异表 E 列标出每笔的状态,SO-002 金额不符、SO-006 只有 B 表有

6

数据流向

数据流向演示1 / 4
来源系统A!A2:A6
➜
去向差异表 A 列
A 表单号作为主键
来源系统B!A2:A5
→
去向VLOOKUP
按单号去 B 表找金额
来源VLOOKUP
→
去向状态列
找不到 → 标记缺失
来源B2-C2
→
去向状态列
找到 → 相减判断差额
跟着高亮一步步看数据怎么流动
7

注意事项与坑

!两边单号格式不同(一个有空格一个没有)会导致全部匹配失败,先 TRIM 再对。
!只以 A 表为主键会漏掉「只有 B 表有」的单,严谨做法是两边都做一次反向查找。
!差额用 ABS 取绝对值可以只看差多少,但会丢掉方向信息,看需求选择。
8

相关场景