银行流水核对
银行流水与财务序时账的智能双向核对,采用多层漏斗匹配模型
视频教程
- 银行流水核对工具发布 — 一对多、多对多和交易对手核对演示
本工具用于自动化解决企业序时账与银行流水的双向核对工作。不仅能处理简单的单笔匹配,还能通过智能聚合算法解决"多笔流水对应一笔凭证"、"跨天汇总记账"等复杂场景。
核心能力
- 智能拆分:自动将"银行存款"凭证拆分为具体客商明细(模拟会计做账)
- 多维匹配:采用多层漏斗模型,从高置信度到低置信度逐步匹配
- 结果输出:生成左右对照的工作底稿,自动对齐 1:N 和 N:M 关系
配置表说明
配置文件路径:input/银行流水核对配置表.xlsx,包含两个 Sheet。
Sheet 1:序时账配置表
| 参数 | 示例 | 必填 | 说明 |
|---|---|---|---|
| 序时账路径 | /data/序时账.xls | 是 | 序时账文件路径 |
| 公司列名 | 否 | 多公司核对时填写,两个数据源中用于关联的列 | |
| 账户列名 | 否 | 多账户核对时填写 | |
| 凭证日期列名 | 日期 | 是 | |
| 凭证号列名 | 凭证号码 | 是 | |
| 科目代码(或科目名称)列名 | 科目名称 | 是 | |
| 银行存款科目代码(或科目名称) | 银行存款-农行-2241 | 是 | 筛选序时账中银行流水相关行。多账户填 银行存款,指定账户填具体科目名称 |
| 摘要列名 | 摘要 | 是 | |
| 交易对手列名 | 否 | 如果序时账已有现成的交易对手列(如"客户"列),直接填列名 | |
| 客商辅助项列名 | 客户-名称,供应商-名称 | 否 | 需从对方科目辅助项提取客商时填写,多个列用英文逗号分隔 |
| 借方金额列名 | 借方金额 | 是 | |
| 贷方金额列名 | 贷方金额 | 是 |
交易对手配置(二选一): 填写了"交易对手列名"后将忽略"客商辅助项列名"。如果两个都不填,序时账将不包含交易对手信息。
Sheet 2:银行流水配置表
| 参数 | 示例 | 必填 | 说明 |
|---|---|---|---|
| 银行流水路径 | /data/银行流水.xls | 是 | |
| 公司列名 | 否 | 多公司时填写 | |
| 账户列名 | 否 | 多账户时填写 | |
| 日期列名 | 交易时间 | 是 | |
| 收入金额列名 | 收入金额 | 是 | |
| 支出金额列名 | 支出金额 | 是 | |
| 交易对手列名 | 对方户名 | 是 |
凭证拆分模式
当配置了"客商辅助项列名"时,系统会自动将一借多贷(或一贷多借)的银行凭证拆分为具体客商明细:
- 将凭证行按借贷方分为两组
- 通过精确金额匹配和组合匹配找到每个银行行的对方科目
- 从对方科目的辅助项中提取客商信息
- 只有对方科目有多个不同客商时才拆分,金额始终以银行行自身为准按比例分配
- 多银行账户凭证按账户分组独立拆分
匹配层级
系统采用漏斗式逐层匹配,置信度由高到低。所有匹配仅在同月内进行。
L1:交易对手-精准
双方金额完全一致,且客商名称包含匹配。最标准的核对场景。
L2:摘要-精准
双方金额一致,序时账摘要中包含银行流水的对方户名。适用于凭证未挂辅助核算但摘要写了名称的情况。
L3:同客商-定向凑数
同一客商在同日或 3 日内的多笔金额,能否凑成另一边的一笔。解决场景:银行分批打款但会计做了一笔总账,或银行一笔大额但会计拆分记账。
L4:同客商-多对多汇总
将同客商的数据按同日优先、同月兜底的方式打包,总额一致即匹配。解决月底批量汇总记账场景。
L5:语义模糊匹配
当名称写法不同(如"京东"与"京东世纪")时,通过文本相似度算法匹配。使用 rapidfuzz(优先)或 difflib 计算相似性。
| 置信度 | 相似度阈值 | 说明 |
|---|---|---|
| 高 | 大于 92% | 极大概率是同一家 |
| 中 | 大于 80% | 通常是简称或包含关系 |
| 低 | 大于 65% | 可能存在差异,建议人工核实 |
低于 65% 不会被采纳,会掉落到后续层级。
L6:同月金额-独一
没有客商信息,但在该月内这笔金额是唯一的。适用于银行手续费、利息税等场景。
L7:同月金额-定向凑数
按银行流水交易对手分组,将同日/3日内/同月的流水汇总后匹配序时账单笔。支持 N:1 和 N:M 关系。
L8:同月金额-暴力凑数
没有客商信息,纯粹靠数字组合在月中找匹配。支持 1:N(一笔银行流水对应多笔序时账)和 N:1(多笔银行流水对应一笔序时账)两个方向。风险最高。
L9:跨月边界匹配
针对月末月初的跨月未达账项,将月边界附近(每月前 3 天/后 3 天)的未匹配记录调整月份后重跑 L1-L8 全部匹配策略。
输出文件
输出路径:output/银行流水核对/银行流水核对底稿_YYYYMMDD_HHMMSS.xlsx
Sheet 1:核对摘要
每个公司+账户的匹配情况汇总,含金额匹配率和条数匹配率。
Sheet 2:核对明细
左右对照的工作底稿,包含以下列组:
| 列组 | 内容 |
|---|---|
| 基础信息 | 公司、账号 |
| 核对结果 | 核对状态(已匹配/未匹配)、匹配编号、匹配类型、交易对手核对 |
| 银行流水 | 原始银行流水数据 |
| 序时账 | 原始序时账数据 |
| 辅助信息 | 计算交易对手(原始)、拆分说明 |
交易对手核对
此列逻辑独立于匹配类型,只关注匹配上的这组数据双方的名称是否一致:
| 状态 | 含义 | 触发条件 |
|---|---|---|
| 一致 | 正常 | 双方客商名称一致/包含,或 AI 相似度大于 65% |
| 不一致 | 高风险 | 双方都有客商但完全不匹配且 AI 相似度低 |
| 无交易对手 | 无法判断 | 双方客商名称均为空 |
| 未匹配 | 未找到对应项 | 该行数据未匹配到对应项 |
复核建议
- 第一优先级:筛选"交易对手核对"为"不一致"的行,必须逐笔检查
- 第二优先级:筛选匹配类型包含"L7"或"L6"的行,抽查大额项
- 第三优先级:筛选匹配类型包含"L3"或"L4"的行,重点关注拆分项的合理性
常见问题
- 匹配率很低:检查是否月份不一致(工具只在同月内核对)、金额单位不一致(元 vs 万元)、公司/账号未对齐
- "在序时账中未找到包含xxx的科目行":确保配置的银行科目名称与序时账中完全一致(含全角/半角符号和空格)
- "序时账中找不到科目列名":复制 Excel 表头粘贴到配置表中,确保列名一致
实践建议
银行流水核对前,建议先使用「银行流水合并」功能将多个银行的数据标准化合并。核对时,真正提升匹配率的关键是将银行流水按交易对手拆分,以及相同交易对手多笔汇总后核对(L3/L4 层级)。
也可以通过 AI 审计助手(Agent 模式)对话调用银行流水合并与核对功能,不需要手动填写参数,AI 会自动帮你调用工具。