跳转到主要内容
YNAB → Beancount

YNAB CSV 到 Beancount

将 YNAB 账户导出(来自“导出计划”或“导出交易”的交易 CSV)转换为平衡的复式记账 Beancount 交易,Outflow 和 Inflow 列已映射好。

已针对真实的 YNAB 导出验证列映射

如何导出你的 YNAB 交易记录

  1. 1

    在 app.ynab.com 的 YNAB 网页应用中导出。iOS 和 Android 应用无法导出计划。

  2. 2

    点击左侧边栏中你想要的账户,而不是“所有账户”。一个账户一个文件才能保持账本准确:此转换器将每行都过账到你下面指定的单一账户,而“导出计划”会一次性给你所有账户。

  3. 3

    如有需要,使用搜索框或“查看”日期过滤器缩小列表,然后勾选表头中的复选框——这会选中当前显示的所有内容。

  4. 4

    在操作栏中点击“更多”,然后选择“导出 # 笔交易”。下载的文件名为“选定交易(针对 [计划名称])…”。

  5. 5

    在文本编辑器中打开,复制包括标题行在内的所有内容,并粘贴到下方。

两个金额列,一次导出可能包含所有账户

YNAB 没有带符号的金额列:Outflow 是支出,Inflow 是收入,未使用的一侧写为“$0.00”而不是留空——因此简单的“取有值的列”导入会出错。预设映射两列,并去除 YNAB 在每个数字上添加的货币符号($84.23、C$210.45、84,23€)。如果一行中两列都是 $0.00——通常为零起始余额——会报告为无法识别的金额并跳过,而不是静默地以猜测的符号过账。并且由于整个计划的导出涵盖所有账户,请使用上面的按账户导出,或在粘贴前按“账户”列拆分文件。

Beancount 输出

粘贴 CSV 后,你的交易将显示在这里。

YNAB 导出常见问题

这适用于 YNAB 4 的导出吗?

不适用。已停用的桌面应用生成的文件不同——包含 13 列,包括“支票号码”和末尾的“运行余额”,没有货币符号,且“已清算”列为 C、U 或 R——其“日期”列位置也不同,因此此预设会读取错误的字段。删除多余的列,直到标题与网页账户的匹配,或在通用转换器上手动映射列。

我的导出是制表符分隔,不是逗号分隔。是不是坏了?

不是。对于货币使用逗号作为小数分隔符的计划,YNAB 会写出制表符分隔的 TSV 而不是 CSV,这样金额中的逗号就不会拆分列。转换器能检测到制表符分隔符,并正确读取“84,23€”——直接粘贴文件即可。这类计划还会将日期写成日优先(01.08.2026),转换器会从点号中识别出来。

我自己账户之间的转账会怎么处理?

会作为普通交易,收款方是 YNAB 导出的字符串——“Transfer : Savings”——三个类别列为空。转换器只看到转账的一侧,因此平衡过账会进入类别账户;将该过账指向真实账户(Assets:Savings),转账就完成了。如果你导出了两个账户,请删除镜像行,而不是转换两次。

正在从其他银行或应用转换导出文件?

保留你刚刚转换的账本

Beancount.io 托管你的纯文本账本,自动导入未来的账单,并保持每一笔数字可审计。

免费开始