Beancount 输出
QIF 拆分交易如何转换
Quicken、GnuCash 及其他个人财务应用会将拆分交易导出为一条银行记录,后跟 S(分类)、E(备注)和 $(金额)行。转换器会保留每个部分:银行过账保持与文件写入时完全一致,而每个部分都会成为你选择的账户上的独立过账,并附上其备注。
!Type:Bank
D01/16/2026
T1850.00
PACME PAYROLL
MJanuary pay
L--Split--
SSalary
EGross pay
$2400.00
STaxes:Federal
EWithholding
$-450.00
S[Savings]
EAutomatic transfer
$-100.00
^
D01/18/2026
T-100.00
PCOSTCO
MWeekly shop
L--Split--
SGroceries
EProduce and bread
$-60.00
SHousehold
ECleaning supplies
$-40.00
^
D01/20/2026
T-25.00
PCITY PARKING
^
- Salary
- Income:Salary
- Taxes:Federal
- Expenses:Taxes:Federal
- [Savings]
- Assets:Savings
- Groceries
- Expenses:Groceries
- Household
- Expenses:Household
2026-01-16 * "ACME PAYROLL" "January pay"
Assets:Bank:Checking 1850.00 USD
Income:Salary -2400.00 USD
memo: "Gross pay"
Expenses:Taxes:Federal 450.00 USD
memo: "Withholding"
Assets:Savings 100.00 USD
memo: "Automatic transfer"
2026-01-18 * "COSTCO" "Weekly shop"
Assets:Bank:Checking -100.00 USD
Expenses:Groceries 60.00 USD
memo: "Produce and bread"
Expenses:Household 40.00 USD
memo: "Cleaning supplies"
2026-01-20 * "CITY PARKING"
Assets:Bank:Checking -25.00 USD
Expenses:Uncategorized 25.00 USD
哪些会转换
- 拆分金额正好等于交易总额的银行和信用卡记录,包括退款和混合正负号(如工资总额减去预扣税)。金额保留文件写入时的精度。
- 每个分类和方括号 [ ] 中的转账都会过账到你在拆分评审中选择的账户。建议仅在你接受后才会应用,并且对账单自身的账户不能作为目标。
- 没有拆分的记录像之前一样转换,另一侧放在对方账户上,或者在分类提示开启时放在文件的分类上。
- QIF 不指定货币,因此金额以 USD 写入。如果账户记录使用其他货币,请在检查输出前替换 USD。
哪些会被排除,并附有说明
- 任何分类仍未映射或映射到无效账户的拆分交易,直到你修正映射。它绝不会作为单条未分类过账导出。
- 仅以百分比给出的拆分、没有金额的部分、金额不加总到总额的部分、重复的拆分字段,以及 T 和 U 金额不一致的记录。
- 投资账户记录,以及包含多个账户记录的文件。请一次导出一个银行或信用卡账户。
每条被排除的记录都会列在输出下方对应的行上,并且不计为已转换。请修正导出并重新转换,或者手动输入这些交易。 用 CLI 导入银行导出文件
关于 OFX 和 QIF 的问题
我的银行对账单会传到网上吗?
不会。转换过程在你的浏览器中通过 JavaScript 完成,因此文件绝不会离开你的电脑。你可以打开此页面后断开网络,再进行转换来验证。
这个工具接受哪些文件类型?
支持两种形式的 OFX——较旧的 SGML 方言和较新的 XML 格式——以及 QIF。银行也以 .qfx 和 .qbo 扩展名提供 OFX 文件,这些也能用:格式是根据文件内容而不是文件名检测的。
为什么每笔交易都会记入 Expenses:Uncategorized?
因为银行导出文件只显示了一个账户的变动。复式记账需要双方,所以对方账户是一个待你替换的占位符——要么通过设置上面的账户,要么稍后对记录进行分类。一个看似正确的猜测远不如一个明显错误的占位符来得安全。
如何防止重复下载造成重复记录?
每笔 OFX 交易都带有一个 FITID,这是银行在多次下载之间保持稳定的 ID,会作为 id: 元数据保留在每一条分录上。当日期范围重叠时,把你上次转换过的文件作为可选的上次的导出文件添加进来:ID 只在同一家银行和同一个账户内匹配,由你选择要排除哪些匹配项——不会自动丢弃任何内容。QIF 没有交易 ID,所以重叠的 QIF 导出文件需要手动检查。
QIF 中的拆分交易会怎么处理?
每个部分都会保留。对于拆分金额正好等于交易总额的银行和信用卡记录,拆分评审会列出每个分类和转账及其金额和备注。一旦你为每个部分选择了账户,银行过账会保持与导出时完全一致,而每个部分都会成为独立的过账,并以其备注作为元数据。仅以百分比给出的拆分、没有金额的部分、金额不加总的拆分以及投资账户记录会被排除,并附上说明,而不会被合并到一个分类中。
我的下载文件包含多个账户。该如何转换?
一次处理一个对账单。在上方选择一个对账单——每个选项都标明了其账户、类型、货币和交易数量——然后检查账户字段是否与资金所在账户一致,并复制或下载该对账单的账本。对每个剩余对账单重复此操作,并将每次下载的内容追加到你的账本中。只有一个对账单的文件会立即转换;包含多个对账单的文件在你做出选择之前不会转换任何内容,因此一个对账单的货币绝不会混入另一个对账单。
完全跳过下载
Beancount.io 连接到你的银行,直接将交易记录写入你的账本——无需中间的导出文件。