PAYATHON 2026

Excel 如何同时匹配两个条件并返回金额?

支付阿杰

结论

可以用 SUMIFS 按 ID 和付款月份匹配金额。对账时,它通常比 VLOOKUP 更合适,因为它支持多个条件。如果同一 ID 在同一个月份有多条付款记录,还能自动汇总金额。

假设 SQL 查询结果中:

  • A 列:ID code
  • B 列:Month of Payment
  • C 列:Payment Amount
  • E2:需要核对的 ID
  • F2:需要核对的付款月份

公式如下:

=SUMIFS($C$2:$C$1000,$A$2:$A$1000,E2,$B$2:$B$1000,F2)

为什么 VLOOKUP 不够直接

VLOOKUP 默认只能根据一个查找值进行匹配,而这里需要同时满足两个条件:

  1. ID 相同;
  2. 付款月份相同。

两个条件都满足时,才能找到对应的金额。因此,可以使用支持多条件的 SUMIFS,也可以选择 XLOOKUP,或组合使用 INDEX 和 MATCH。

推荐方法:使用 SUMIFS

公式结构如下:

=SUMIFS(金额范围,ID范围,目标ID,月份范围,目标月份)

例如:

=SUMIFS($C$2:$C$1000,$A$2:$A$1000,E2,$B$2:$B$1000,F2)

这个公式会筛选 A 列等于 E2,且 B 列等于 F2 的记录,再汇总对应的 C 列金额。

如果有多条记录符合条件,SUMIFS 会将金额相加。这很适合付款对账,因为 SQL 结果中可能包含同一 ID 在同一个月内分多次付款的记录。

如果需要区分”没有匹配记录”和”匹配金额为 0”,可以先用 COUNTIFS 统计匹配数量:

=IF(COUNTIFS($A$2:$A$1000,E2,$B$2:$B$1000,F2)=0,"未匹配",SUMIFS($C$2:$C$1000,$A$2:$A$1000,E2,$B$2:$B$1000,F2))

只需要返回一条记录时

如果能确定每个”ID + 月份”组合只有一条记录,可以使用 XLOOKUP:

=XLOOKUP(1,($A$2:$A$1000=E2)*($B$2:$B$1000=F2),$C$2:$C$1000,"未匹配")

两个条件判断会分别产生 TRUE 或 FALSE。在乘法运算中,Excel 会将它们转换成 1 或 0。只有两个条件同时成立,结果才是 1。

XLOOKUP 只会返回第一条符合条件的金额。如果数据中可能存在重复记录,应优先使用 SUMIFS。

兼容旧版 Excel 的方法

如果 Excel 不支持 XLOOKUP,可以使用 INDEX 和 MATCH:

=IFERROR(INDEX($C$2:$C$1000,MATCH(1,($A$2:$A$1000=E2)*($B$2:$B$1000=F2),0)),"未匹配")

在不支持动态数组的旧版 Excel 中,这个公式可能需要按 Ctrl+Shift+Enter 提交,不能只按 Enter。较新的 Excel 版本通常可以直接输入。

这个公式也只返回第一条匹配记录。

付款月份是完整日期时

一个常见问题是,两边显示为同一个月份,底层保存的日期却不同。例如:

  • SQL 结果为 2026-08-15;
  • 对账表中为 2026-08-01;
  • 两个单元格都显示为”2026年8月”。

显示内容相同,并不代表底层日期值相同。直接比较 B 列和 F2 时,可能无法匹配。

这时,按完整月份范围匹配更可靠:

=SUMIFS(
    $C$2:$C$1000,
    $A$2:$A$1000,E2,
    $B$2:$B$1000,">="&EOMONTH(F2,-1)+1,
    $B$2:$B$1000,"<"&EOMONTH(F2,0)+1
)

这个公式会匹配 F2 所在月份内的所有付款日期,不受具体日期影响。

也可以在 SQL 查询或 Excel 辅助列中生成统一的月份键,例如:

=TEXT(B2,"yyyy-mm")

然后按月份键匹配。由于 TEXT 返回文本,参与匹配的两侧必须使用相同格式。

注意事项

  • ID 两侧的数据类型必须一致。文本 "00123" 和数字 123 不相同,前导零也会影响匹配。
  • 日期必须是 Excel 能识别的真实日期,不能只是外观类似日期的文本。
  • SUMIFS 使用的各个范围必须具有相同的行数。
  • 金额列必须保存为数值,否则文本金额无法正常汇总。
  • 如果 SQL 结果可能包含重复记录,需要先确定业务上是要汇总全部金额,还是只取第一条。
  • 数据量较大时,可以先将结果区域转换成 Excel 表格,再使用结构化引用,以免固定范围漏掉新增数据。

大多数 Reconciliation 场景都适合优先使用 SUMIFS。只有在每个 ID 和月份组合确定唯一时,才适合使用 XLOOKUP 或 INDEX + MATCH。

备注:内容仅供参考。