QuickBooksからBeancountへの移行ガイド
ステージ1:QuickBooksからのデータエクスポート
5年分のデータを移行するには、まずQuickBooksの全レコードを利用可能な形式で取得することから始まります。QuickBooks DesktopとQuickBooks Onlineでは、エクスポートオプションが異なります。
1.1 QuickBooks Desktopのエクスポートオプション
IIF (Intuit Interchange Format): QuickBooks Desktopでは、リスト(勘定科目表、顧客、ベンダーなど)を.IIF
テキストファイルにエクスポートできます。QuickBooks Desktopで、[ファイル] → [ユーティリティ] → [エクスポート] → [IIFファイルへのリスト] に進み、必要なリスト(例:勘定科目表、顧客、ベンダー)を選択します。これにより、勘定科目名、タイプ、リストデータを含むテキストファイルが生成されます。IIFはプロプライエタリな形式ですが、プレーンテキストであり、比較的簡単に解析できます。これを使用して、Beancountでの参照用に勘定科目表と連絡先リストを取得します。
CSV経由の総勘定元帳/一般仕訳帳: 取引データについては、QuickBooks Desktopにはワンクリックでの完全なエクスポート機能はありませんが、レポートを使用できます。推奨される方法は、希望する期間の一般仕訳帳(すべての取引)をエクスポートすることです。QuickBooks Desktopで、[レポート] → [会計士と税務] → [一般仕訳帳] を開き、日付を最も古い取引から今日までに設定し、[エクスポート] → [Excel] をクリックします。レポートのヘッダー/フッターや空の列を削除した後、結果をCSVとして保存します。数値データがクリーンであることを確認してください:セントを含める(例:3
ではなく3.00
)、余分な引用符がない、通貨記号や二重の負号がCSVにないようにします。CSVには、日付、取引番号、名前、勘定科目、メモ、借方、貸方、残高(またはレポート形式によっては単一の金額列)などの列が必要です。
ヒント: QuickBooks Desktop 2015以降では、検索ダイアログからも取引をエクスポートできます。[編集] → [検索] → [詳細] を使用し、日付範囲を5年間に設定してから、結果をCSVにエクスポートします。警告: 一部のバージョンではエクスポートが32,768行に制限されています。データ量が非常に多い場合は、切り捨てを避けるために年ごと(またはより小さなチャンクで)エクスポートし、後で結合してください。重複を避けるために、日付範囲が重ならないようにしてください。
その他のフォーマット (QBO/QFX/QIF): QuickBooks Desktopは.QBO
(Web Connect) または.QFX/.OFX
ファイルを介して銀行取引をインポートできますが、QuickBooksからエクスポートする場合には一般的ではありません。銀行取引のみを抽出することが目的であれば、銀行からQBO/OFX形式で既に入手している可能性があります。ただし、完全な元帳のエクスポートのためには、IIFとCSVを使用してください。QuickBooks Desktopは、サードパーティ製ツールなしでは直接QIF (Quicken Interchange Format) にエクスポートできません。もしQIFを取得する方法を見つけた場合、一部の会計ツール(古いLedger 2.xなど)はQIFを読み取れましたが、我々のプロセスではCSVを扱う方が良いでしょう。
1.2 QuickBooks Onlineのエクスポートオプション
Excel/CSVへの統合エクスポート: QuickBooks Online (QBO) にはデータのエクスポートツールが用意されています。[設定] ⚙ → [ツール] → [データのエクスポート] に進みます。エクスポートダイアログで、[レポート] タブを使用してデータ(例:総勘定元帳または取引リスト)を選択し、[リスト] タブでリスト(勘定科目表など)を選択し、[すべての日付] を選 んでExcelにエクスポートします。QuickBooks Onlineは、選択されたレポートとリスト(例:損益計算書、貸借対照表、総勘定元帳、顧客、ベンダー、勘定科目表など)の複数のExcelファイルを含むZIPをダウンロードします。その後、これらのExcelファイルをCSVに変換して処理できます。
取引詳細レポート: QBOのデフォルトのエクスポートに単一の総勘定元帳ファイルが含まれていない場合、手動で詳細レポートを実行できます:
- [レポート] に移動し、[勘定科目別取引詳細](または一部のQBOバージョンでは**[総勘定元帳]**)を検索します。
- [レポート期間] を5年間の全範囲に設定します。
- レポートオプションで、[グループ化] = [なし] に設定します(小計なしで個々の取引をリストするため)。
- 少なくとも次の列を含むように列をカスタマイズします:日付、取引タイプ、番号、名前(受取人/顧客)、メモ/説明、勘定科目、借方、貸方(または単一の金額列)、および残高。クラスや場所を使用していた場合はそれらも含めます。
- レポートを実行し、[Excelにエクスポート] します。
これにより、すべての取引の詳細な元帳が生成されます。これをCSVとして保存します。各行は取引の1つの明細(仕訳)を表します。後で変換のために、取引ごとに行をグループ化する必要があります。
勘定科目表およびその他のリスト: QuickBooks Onlineでは、[会計] → [勘定科目表] → [一括処理] → [Excelにエクスポート] を介して勘定科目表をエクスポートできます。これを行って勘定科目名とタイプを取得します。同様に、メタデータ用に名前を転送したい場合は、顧客、ベンダーなどもエクスポートします。
QuickBooks Online API (オプション): プログラムによるアプローチとして、IntuitはQBOデータ用のREST APIを提供しています。上級ユーザーは、QuickBooks Onlineアプリケーションを作成し(開発者アカウントが必要)、APIを使用してデータをJSONで取得できます。たとえば、Account
エンドポイントで勘定科目表を、JournalEntry
またはGeneralLedger
レポートエンドポイントで取引を照会できます。python-quickbooks
のようなPython SDKがAPIをラップしています。ただし、APIの使用にはOAuth認証が必要であり、自動化を好む場合を除き、一度きりの移行には過剰です。ほとんどの場合、CSV/Excelへの手動エクスポートの方が簡単でエラーが発生しにくいです。
ステージ2:データの変換とクリーンアップ
QuickBooksのデータをCSV(および/またはIIF)で取得したら、次のステップはそれをBeancountのプレーンテキスト元帳形式に変換することです。これには、エクスポートの解析、QuickBooksの勘定科目をBeancountの勘定科目表にマッピングし、取引をBeancountの構文にフォーマットすることが含まれます。