票小智 · 发票批量识别导出 Excel
发票台账按号码去重求和:Excel 做法 + 先识别再汇总
台账里发票号码相同,不一定表示记录重复:一张票有三项商品,本来就会占三行。正确做法是先确认每行的含义、排除重复导入,再生成唯一号码清单并汇总完整明细。票小智提供规范字段,Excel 负责后续统计与核对。
免登录累计试用 5 张 · 多页 PDF 按页计 · 核对后导出 Excel
回首页上传发票,免费试用第一步:辨认行口径,保留原始数据
先复制一份台账做工作副本,原始导出保持不变。票小智当前十八列中,发票号码位于 B 列,金额、税额和价税合计分别位于 M、O、P 列。有明细时 P 列是本行金额加本行税额,无明细时这一行 P 列才是票面整票总额。不同来源的旧表可能采用其他口径,不能直接套用。
重复收票或重复导入需要核对原文件、双方主体、日期和整组明细,确认后移除重复的那一组记录。同号的合法商品明细全部保留。空号码先放入待核清单,不能把全部空白当成一张票;跨客户或旧票号可能不唯一时,应补充客户主体、代码等依据后分组处理。
| 示例记录 | B 列发票号码(文本) | P 列价税合计 | 处理方式 |
|---|---|---|---|
| 第一项商品 | 00000000000000000001 | 113.00 | 保留 |
| 第二项商品 | 00000000000000000001 | 226.00 | 保留;该票两项共 339.00 |
| 另一张票的一项商品 | 00000000000000000002 | 56.50 | 保留;两票合计 395.50 |
第二步:号码按文本,金额转成可计算数值
发票号码和税号属于标识字段,不能为了匹配把二十位号码转成数值。数值精度不足可能让末尾不同的号码看起来相同。先检查编辑栏的完整号码与原票一致,再保留文本类型。已经损失精度的号码需回到来源恢复,改变显示格式无法补回末位。
对 P 列金额先检查是否为数值,必要时在副本中通过表格软件的转换功能处理数字文本。用 ISNUMBER 检查代表性单元格,核对转换前后符号与小数位。空值、免税等文字和识别异常不应一概转成零;先核实来源,再决定如何处理。本页公式假定 P 列为已核对数值,且所选区域没有错误值。
第三步:生成不重复的号码清单
支持动态数组函数的 Excel 可在 T1 写“发票号码”,在 T2 输入下面公式,提取 B2 到 B1000 中非空且不重复的号码。T 列下方需要有足够的空白空间,避免溢出错误。范围应按实际数据扩展,不要让新增行落在公式区域之外;没有记录时也要先确认数据源,而非把空表当作已完成核对。
=UNIQUE(FILTER(B2:B1000,B2:B1000<>"",""))
没有 UNIQUE 的版本,可把 B 列号码复制到独立的汇总表,再在这份号码清单上使用“删除重复项”,不要对原始明细表按号码删除重复行。去重的是用于展示的号码清单,原始明细仍完整保留。后面每个唯一号码都要把属于它的全部合法明细相加。
第四步:按文本精确匹配并求和
对于长数字标识,不建议直接用可能按数值条件比较的 SUMIF 或 SUMIFS 匹配号码。可在 U1 写“价税合计”,在 U2 使用下面的 SUMPRODUCT 配合 EXACT,按文本精确比较 B 列号码,再汇总 P 列的数值。U2 公式向下填充到唯一号码清单末尾;同一份数据不要一部分用文本、一部分用数值保存号码。
=IF(T2="","",SUMPRODUCT(--EXACT($B$2:$B$1000,T2),$P$2:$P$1000))
示例中的第一个号码应得到 339.00,第二个号码得到 56.50,汇总为 395.50。如果第一张票只留一行,会少算 226.00。若原表按每行重复整票总额保存,则应先核实整票金额一致后建立每票一行的汇总表,不能使用这里针对明细行金额的直接相加做法。
第五步:用控制数检查漏行与重复
将汇总表合计与已核对的明细数值合计、票面合计分别比较。只有范围相同、行含义一致,控制数才有意义。发现差异时检查:新增行是否超过第一千行、号码是否带空格、数字文本是否未转换、重复文件是否仍在、整票基础行是否与补录明细同时存在。不要用强行补差把问题隐藏。
数据透视表也可用于按号码汇总明细金额,但需先确认长号码仍是文本、空值被单独处理,并在新增记录后刷新。以上函数用法可参考微软的UNIQUE 说明、EXACT 说明和SUMPRODUCT 说明。公式示例需按你的表格版本和实际范围调整。
再做三个边界检查,防止公式看似正确
首先测试末位不同的长号码。把示例中的两个二十位号码保留为文本,确认唯一清单仍有两项,分别汇总到对应金额。再测试一条负数明细,确认汇总保留负号,没有在清洗时变成正数。最后把一条合法记录放在原公式范围之外,检查控制数是否出现差异,再扩展范围,确认差异消除。所有试验在副本完成。
不要用空白或错误值让差异悄悄消失。金额是数字文本时,SUMPRODUCT 的某些用法可能把文本当零处理,所以要先完成类型检查;只有“没有报错”并不能证明全部明细被计算。每次追加一批资料,重新核对非空金额的记录和数字类型,检查合计变化与本批实际金额一致,再把结果用于对账或交接。
让公式范围跟着后续数据维护
固定范围适合说明和小表,持续追加资料时可以建立规范的 Excel 表,再按实际表名与字段调整引用。调整后仍要用单明细、多明细、空号码和重复导入样本做核对。若使用筛选,请明确合计要覆盖全表还是仅筛选后的记录,普通求和不会因为行暂时不可见就自动改变统计口径。
汇总表最好记录本次纳入的客户、期间与接收批次,方便其他人重现结果。保留原始明细、清理后的明细和唯一号码汇总之间的对应,不要在汇总结果上直接补金额。出现异常应回到明细层查清来源,再重算汇总。这样公式不仅给出一个数字,也能解释为什么是这个数字,以及这次处理还缺哪些记录。
先整理来源,再验证去重求和
- 还没有字段台账时,去首页识别并导出;已有 Excel 则先备份,辨认整票行与商品明细行。
- 核 B 列号码的文本精度,排除重复导入的整组记录,再按前文公式生成唯一号码清单。
- 汇总 P 列时保留正常多明细,分别测试长号码、负数和新增行,确认合计与同范围票面控制数一致。
公式引用的五列及行口径
- 文件名:A 列,追溯相同号码是否来自重复导入。
- 发票号码:B 列,用完整文本分组;同号多行先检查明细身份。
- 金额:M 列,本条商品的不含税金额,参与行级核算。
- 税额:O 列,与同一行金额对应,空白先核来源。
- 价税合计:P 列,有明细时为 M 加 O;无明细的单行用整票总额,两种口径不叠加。
以上列位以当前导出为准,其他来源需先映射;全表列序见十八列空白模板。
先算识别用量,表格复核另行完成
在 Excel 里核公式不发起识别。需补识别时,访客累计上限 5 张、不按日重置;登录且验证邮箱后,北京时间每天 10 张,不结转余额。只上传不扣,识别逐次扣额度,失败也计入、不返还;目前没有在线支付。
来源支持 PDF、OFD、JPG、PNG、WebP,不支持 Word。PDF 单份最多 20 页,每页用 1 张;OFD 最高 3MB,仅识别第 1 页。原件会上传,见隐私政策。求和相符不能替代官方查验、业务复核或审批。
常见问题
- 能直接对原表按发票号码删除重复行吗?
- 不能。当前导出每行是一条商品明细,同号多行通常是合法明细。先确认并排除重复导入,再对独立的号码清单去重,原始明细保留后按号码汇总。
- 为什么长发票号码示例不用 SUMIF 匹配?
- 长号码应按文本精确比较,避免数值条件比较造成误匹配。示例使用 EXACT 配合 SUMPRODUCT,前提是号码完整、金额为已核对数值,公式范围覆盖全部记录。
- 导出的价税合计是明细行还是整票金额?
- 每行是一条商品明细。有明细时,金额、税额、价税合计都按该行给出,价税合计等于该行金额加税额;没识别出明细时占一行,价税合计使用整张发票的票面总额。汇总前要区分明细行、整票汇总行和重复上传记录。
- 免登录试用额度和多页 PDF 怎么计算?
- 免登录可累计试用 5 张,不按天重置;多页 PDF 按页计,每页 1 张。登录并完成邮箱验证后,按北京时间每天可识别 10 张。只上传不扣额度,每识别一次计一次,识别失败也计入且不返还。当前没有在线支付。
免登录累计试用 5 张 · 多页 PDF 按页计 · 核对后导出 Excel
回首页上传发票,免费试用