只导一边账单不够:客户可能打到支付宝,你再用微信付成本。两边 CSV 直接拼在一起,最常见的坑是「互转 / 余额代付」被算成两笔真实收支。下面给一套可重复的合并与去重规则。
合并前,两边各自清洗到相同字段,否则 Excel 里很难比对:
| 字段 | 说明 |
|---|---|
| date | 交易日 YYYY-MM-DD(忽略时区差异时先按本地日) |
| amount | 收入为正、支出为负 |
| direction | in / out |
| counterparty | 交易对方 |
| category | 劳务收入 / 软件订阅 / 转账等 |
| note | 商品说明或备注 |
| source | alipay / wechat / bank |
| order_id | 有则保留,去重首选键 |
编码:支付宝常见 GBK,微信常见 UTF-8。先统一再合并,避免「看不见的乱码重复行」。
报税底稿建议:收入侧按「最终到账账户」汇总;支出侧按「实际付款账户」汇总。互转行单独一张「内部调拨」表,不进损益。
大额对公 / 银行卡收款时建议一并导出「明细查询」CSV,用同一套标准字段。注意:银行卡入账与支付宝提现之间也会出现镜像,规则同上。
BillFold 可自动识别支付宝 / 微信 / 通用银行导出,输出标准 CSV + 月度 Markdown。浏览器可先试跑样例(数据留在本地);需要完整 CLI 与源码时买断 Pro。
python -m billfold run 支付宝明细.csv -o out/alipay/ python -m billfold run 微信支付账单.csv -o out/wechat/ # 再在 clean.csv 上按 order_id / 金额+日期 去重后合并
多半是互转或提现被当成收入。先筛 category / note 含「转账 / 提现 / 充值」的行,挪到调拨表。
仍建议保留 source 字段,方便以后加第二数据源时不改表结构。
在线记账 App 强在可视化与预算;若你要的是「可交给会计的干净 CSV + 可复跑脚本」,本地 CLI 更合适。数据不上传。