己の為に金は鳴る

株式投資の投資日記

GnuCash money

GnuCashのCSVインポートが異様に遅い問題への対処

投稿日:2020-09-27 更新日:


概要

以前告知した通り,2020-07-21 Tueから株式の信用取引を行っている。信用取引を行う都合,一日に何回も取引が発生し,手作業での取引のGnuCashへの記帳に限界を感じてきていた。100件程度の取引を記入し,チェックすると2時間くらいかかる。さすがに,これを毎日するのは時間がもったいない。

そこで,2020-08-05 Wedから翌日にかけて,証券会社からダウンロードした取引履歴をGnuCashのインポート用CSVに変換するツールを作って,試していた。

ただ,インポートに異様に時間がかかることに気付いた。1日分のインポートにだいたい1時間かかる。さすがに遅すぎる。

このGnuCashでのインポートに異常に時間がかかる問題の原因を特定し,対処方法を見つけたので記す。

なお,Ubuntu 20.04のGnuCash v3.8で確認した。

問題

GnuCashのCSVインポートは [File]>[Import]>[Import Transaction from CSV…] を選んで行う。

このメニューの後,インポート対象のCSVを選んで,勘定科目 (Account) を割り当てた後,以下の取り込み画面が表示される。なお,インポート対象のCSVはGnuCashがエクスポートするCSVの形式にあわせておく。

ここで右上の [Next] を選ぶと取り込みデータに対して,GnuCashがいくつかチェックを行う。その後の画面で実際にGnuCashへデータを取り込む。

ただ,ここで [Next] を選んだ際のチェックが異様に遅いことに気付いた。例えば,以下の内容の1件のデータをインポートしてみる。

Date,Transaction ID,Number,Description,Notes,Commodity/Currency,Void Reason,Action,Memo,Full Account Name,Account Name,Amount With Sym,Amount Num.,Reconcile,Reconcile Date,Rate/Price
2020/08/6,,,買付,,CURRENCY::JPY,,,,個人.資産:流動資産:有価証券:信用:岡三オンライン証券:株式:3000:3689 イグニス,,,100,c,,1768
,,,,,,,,手数料,個人.資産:流動資産:有価証券:信用:岡三オンライン証券:株式:3000:3689 イグニス,,,58,c,,1
,,,,,,,,消費税,個人.資産:流動資産:有価証券:信用:岡三オンライン証券:株式:3000:3689 イグニス,,,5,c,,1
,,,,,,,,,個人.負債:流動負債:未払金:有価証券:信用:岡三オンライン証券,,,-176863,c,,1

すると,だいたいチェックに40秒かかった。たぶん,データ1件ごとに40秒かかるとして,100件あれば100*40=4000秒で約1時間という計算になる。

インポートに1時間かかったとしても,機械的に用意したデータを直接インポートできれば,手入力の間違いが減り,待ち時間に別の作業ができるので全て手作業でやるよりかはましだ。

ただ,いくらなんでも遅すぎるのが気になる。

対処

このインポート時のチェックは「6.15.7. Generic Transaction Import Matcher」で説明されている。デフォルトだと,過去42日分の取引を検査して,インポート対象の取引がマッチするかどうかチェックしているらしい。

このインポート時のチェックをなにか設定でスキップできないかマニュアルを調べていた。すると,「10.2.6 Online Banking」が見つかった。

[Edit]>[Preferences]>[Online Banking]>[Generic Importer] にインポートの設定がある。

デフォルトだと,以下の3項目が全て有効になっている。

  • Enable skip transaction action (取引のスキップ動作を有効にする)
  • Enable update match action (一致処理で更新動作を有効にする)
  • Use bayesian matching (ベイズ理論の一致処理を使用する)

上2個はチェック後の取り込み時の取り込み方法に関するもので,3個目はチェックの処理に関するもののようだ。

試しにこれらの設定をオン・オフしてインポートを試すと,3個目の [Use bayesian matching] がオンだとチェックに時間がかかり,オフだとチェックが一瞬で終わった。過去の取引との類似性チェックは複雑な処理となるため時間がかかるようだ。

このことから,[Use bayesian matching] をオフにすればインポートが早くなる。インポートは基本的に新しい取引を取り込みために行うもので,既存の取引をチェックする必要はない。

過去の取引を上書き修正したいのでなければ,[Use bayesian matching] は常にオフで良いように思った。

結論

GnuCashでCSVインポートが異様に遅い問題の原因と対処方法を記した。

データインポートは記帳を効率的に行う上で必要な機能であり,ハマりどころだった。専門分野のソフトでもあり,インターネット上でもあまり情報がなく,調査もなかなかしんどかった。

ひとまず解決でき,今後のCSVインポートは快適に行えるのでよかった。

-GnuCash, money

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

2020-01-31 Friまでメルカリでの購入はメルペイスマート払いが3 %ポイント還元で一番お得

キャンペーンのポイントプレゼントを受けるために,メルカリが運営する決済サービスのメルペイに登録し,メルペイスマート払いについて調べていて,2020-01-31 Friまではメルカリでの購入はメルペイス …

no image

クレジットカードの仕訳の整合性の確認方法

クレジットカードの帳簿への仕訳の整合性の確認方法を記す。 目次 導入 方法 具体例 結論 導入 確定申告の時期が近づいており,昨年の取引を帳簿に仕訳している。銀行口座は残高で整合性を確認できる。しかし …

GnuCashでの仕訳帳 (General Journal) の期間指定2

目次 概要 方法 手順 勘定科目の選択 表示内容の編集 表示順の編集 結論 概要 以前,「GnuCashで仕訳帳 (General Journal) の期間指定1」で,仕訳帳 (General Jou …

no image

ガスのエネアーク関東への変更 | 4月末までの申込みで7000円分Tポイントをゲット!

ガスの契約会社にここ2年ほど東京ガスを使っていた。それを今日エネアーク関東に変更した。 2年使ったのでもう十分だろうと思い,エネチェンジでガス会社を比較した (参考: [ガス自由化]ガス会社・料金プラ …

no image

エネチェンジのキャンペーンコードの入手方法

エネチェンジでの電力会社切り替え申込時のキャンペーンコードを入手し,500円のAmazonギフト券の入手に成功した。入手方法を記す。 目次 導入 情報 実践 結論 導入 エネチェンジでの電力会社の切り …

About Author

2020年9月
 123456
78910111213
14151617181920
21222324252627
282930