VBA-0083-十万行商超收银文件合并与查重

3 次浏览

VBA-0083-十万行商超收银文件合并与查重

10份文件、10万行收银数据,如何一键合并查重?

WorkBuddy 写 VBA,Excel 在本地批量处理

案例结论

10 份 CSV 、共 100,000 行,最终保留 97,000 条,查出 3,000 条重复,0 条冲突,并自动生成门店日报。

关键词:WorkBuddy · VBA · 十万行 · 文件合并 · 重复流水 · 门店日报

01 为什么不把 10 万行数据直接交给 AI?

真实业务中,商超每天都会导出收银流水。当 10 家门店累积到 10 万行时,手工复制粘贴不仅慢,还容易遇到列顺序不同、重复导出、退货金额与销售金额混合等问题。

如果把整批明细反复上传给 AI,传输量、上下文限制、隐私和重复成本都不理想。更适合的做法是:让 AI 阅读规则、表头和少量样例,由 WorkBuddy 生成 VBA 代码;真正的 10 万行数据始终在 Excel 本地计算。

一句话思路

AI 负责“写工具”,VBA 负责“跑大数据”。代码写好后,换一批数据只要点击按钮,无需再次询问 AI。

VBA-0083-十万行商超收银文件合并与查重

图 1:10 份收银文件就绪,开场直接突出“10万行”。

02 案例最终完成了什么?

指标 实测结果 用途
输入流水 100,000 行 10 份 CSV 合并
保留记录 97,000 条 作为后续汇总主数据
重复流水 3,000 条 单独列出,可追溯来源
冲突记录 0 条 相同流水号内容不一致时报警
净实收 13,825,461 元 与门店日报合计一致
日报组数 310 组 按门店 + 营业日期汇总

除了主结果,代码还会生成“导入清单”、“合并明细”、“重复记录”、“冲突记录”和“门店日报”。每条数据保留来源文件和原始行号,一旦发现异常,可以立即回到源文件核对。

VBA-0083-十万行商超收银文件合并与查重

图 2:控制台清晰显示输入、保留、重复和冲突四项核心指标。

03 零基础也能说清楚的提示词

这个案例的重点不是先学会 VBA 语法,而是先把自己想要的业务结果说清楚。WorkBuddy 会自动阅读当前项目中的说明、表头和少量样例,然后把自然语言转成可执行的 VBA 代码。

本案例提示词

请使用 VBA 相关技能完成以下任务,不做窗体。10 家超市给我 10 份收银文件,共 10 万行,列顺序不一样,还有重复导出的流水。请先看当前工作簿的案例说明、表头和少量样例,按规则合并文件、列出重复记录,再汇总各门店每天的实收和退货。保留来源文件和行号,别改原数据。用高效方法批量处理,加一个开始处理按钮,以后换数据还能用。显示真实耗时,自动核对行数和金额,重复运行别叠加旧结果。运行宏请用 VBAYYDS CLI。

VBA-0083-十万行商超收银文件合并与查重

图 3:提示词在视频中放大展示,零基础用户也能直接照着说。

04 WorkBuddy + VBAYYDS 的完整流程

  1. 打开工作簿和 VBA 编辑器,通过 VBAYYDS 语音编程助手复制当前项目路径。
  2. 在 WorkBuddy 中加入该项目,让 AI 能读取工作簿说明、表头和样例。
  3. 用日常语言说出需求:合并 10 份文件、检查重复、保留来源、生成日报。
  4. WorkBuddy 编写 VBA 并根据实际数据结构完善容错、清理和校验逻辑。
  5. 用 VBAYYDS CLI 运行宏,输出合并明细、重复记录、冲突记录和门店日报。
  6. 核对行数、金额平衡与日报合计;确认通过后,后续只需更换数据并点击按钮。

三样工具,各自负责什么?

Excel / WPS 负责保存数据、运行 VBA 和展示结果;WorkBuddy 负责理解需求、阅读项目并写代码;VBAYYDS 负责连接 VBA 项目、复制路径,并通过 CLI 运行宏。

VBA-0083-十万行商超收银文件合并与查重

图 4:在 VBA 编辑器中调用 VBAYYDS 语音编程助手。

05 10 万行也能跑得稳:代码里的高效思路

大数据处理最忌讳的是“一个单元格一个单元格地读写”。本案例把绝大多数计算放到内存数组和字典中,最后再一次性写回工作表。

  • 先读取每个 CSV 的表头,再建立列名映射,因此不怕列顺序改变。
  • 预先统计总行数,一次性 ReDim 主数组,避免频繁 ReDim Preserve。
  • 用 Scripting.Dictionary 保存流水号和完整签名,快速区分“重复”与“冲突”。
  • 按“门店 + 营业日期”在内存中汇总销售笔数、退货笔数和净实收。
  • 运行期间关闭 ScreenUpdating 和事件触发,完成后再恢复,减少界面刷新开销。
  • 每次运行前先清理本案例的结果表,所以重复点击不会叠加旧数据。
Set dicSig = CreateObject("Scripting.Dictionary")
Set dicKeep = CreateObject("Scripting.Dictionary")

ReDim retained(1 To 输入行数, 1 To 12)
ReDim dupArr(1 To 输入行数, 1 To 15)
ReDim conflictArr(1 To 输入行数, 1 To 15)

VBA-0083-十万行商超收银文件合并与查重

图 5:最终 VBA 代码中的批量数组与字典处理。

06 结果不只要“有”,还要可核对

对财务和收银类数据来说,跑出一张汇总表还不够。本案例在控制台中同时做三层验证:行数平衡、冲突数核对、金额等式检查。

  • 行数:100,000 = 97,000 + 3,000 + 0。
  • 金额:输入金额 = 保留金额 + 重复金额 + 冲突金额。
  • 日报:保留数据的净实收 = 门店日报合计。
  • 追溯:每条保留、重复或冲突记录都带有来源文件和原始行号。

VBA-0083-十万行商超收银文件合并与查重

图 6:合并明细保留来源文件和原始行号,异常数据可回溯。

VBA-0083-十万行商超收银文件合并与查重

图 7:门店日报一次生成,销售、退货和净实收同表呈现。

07 以后换数据,只要点一下

一次性询问 AI 只能得到一次结果;而把逻辑固化到 VBA 里,得到的是一个可重复使用的本地工具。后续只要将新的收银文件放入指定文件夹,打开工作簿,点击“开始处理”,结果表就会自动刷新。

实际耗时

本次录屏环境的控制台显示约 19.55 秒。实际速度会受磁盘、Excel/WPS 版本、CPU 和 CSV 内容复杂度影响,但高效数组与字典结构可以避免随数据量增长出现明显的界面卡顿。

这也是 WorkBuddy + VBAYYDS 语音编程最有价值的地方:你不必先成为 VBA 专家,先用自然语言把业务需求说清楚,再让 AI 帮你把需求变成一个能反复使用的 Excel 工具。

08 学会这个案例,还能迁移到哪些场景?

行业 可迁移的任务
连锁零售 门店日销售合并、退货核对、收银对账
仓储物流 多仓进销存合并、重复单号检查、库龄汇总
生产制造 设备运行日志合并、异常记录去重、班次汇总
电商客服 订单、售后、退款文件合并及店铺日报
财务共享 银行流水整理、发票号查重、金额平衡检查

最后的记忆点

说清需求,让 WorkBuddy 写 VBA;数据在 Excel 本地跑;代码写一次,按钮反复用。

— 完 —

VBA-0083-十万行商超收银文件合并与查重插图8

工具名称:VBAYYDS语音编程助手
适合人群:常用Excel且希望自动化操作但不想深学VBA的职场人
体验方式:下载地址vbayyds.com
✨ 让Excel听懂你的需求,或许只需要一次尝试。
✨ 你的时间,值得用在更值得的事情上。
官网下载地址 vbayyds.com
淘宝搜索 vbayyds
购买方式 加微信EXCEL880B
VBA-0083-十万行商超收银文件合并与查重插图9