2020/07/12

Zaimの金融機関連携口座に過去の取引データを連結する方法(Part1)

_2020/07/03「2020年7月時点のZaim論」で申し上げたように、Zaimは「金融機関サイトと連携している口座であってもデータの追加・削除・修正が可能」という希有な仕様を誇っています。つまり、Zaimの会員(プレミアム会員でなければなりませんが)登録以後にZaimで取得した取引データに、それ以前の(ユーザーの手持ちの)取引データを連結する、という大技が可能です。今回を含め3回の連載で、その大技について解説したいと思います。Zaimの恐るべき能力と危うさをとくとご覧下さい。

1.今回の連載の狙い

_この連載では、

  1. Zaim(プレミアム会員登録が必要)上で、金融機関サイトと連携する口座を作成
  2. 金融機関サイトから取引データを取り込ませる
  3. それよりもさらに過去の取引データ(他の家計簿ソフトで作成したもの)をZaimにアップロード
  4. Zaim上で過去の残高推移を正しく認識させるための操作を行う

_…という一連の手順を、モバイルSuicaを例題に解説します。この記事を作成したのは1年半前であり、Zaimの画面等も若干古いものを再掲しておりますがご容赦ありたく。…時を2019年2月に戻そう。

2.ZaimにモバイルSuicaを連携させる

_↓早速、ZaimにモバイルSuicaを連携させます。筆者がこの操作を行ったのは2019/02/22であり、データ取得開始日は2018/12/01としておきます。

モバイルSuica通常版と連携

_モバイルSuicaのデータが取り込まれたら、早速口座の残高推移がどのように認識されているかを確認しましょう。筆者のモバイルSuicaの場合は↓のようになりました。

口座連携直後のモバイルSuicaの残高推移

_…あれ? 筆者は2018/12/01以降をデータを取り込むように指定したのに、どういうわけか2018年9月末時点の残高11,406円が認識されています。では、このデータは正しいのか? というと… モバイルSuicaのサイトから利用履歴のデータをコピペして加工したデータを↓に示します。上から、2019年2月の(今のところの)最終利用日、1月同、2018年12月同…ときて、2018年9月はモバイルSuicaサイトで拾える限りの利用履歴をすべて表示しています。

_まず、2019/02/22時点の残高4,321円は正しいですね。また、2018年9月の最終利用日である2018/09/27の残高11,406円もZaim側で正しく認識されています。なお、↓赤枠で囲った2018/09/20のデータの意味については後述します。

モバイルSuicaサイトからコピペした利用履歴データを加工した

3.Zaim内部のデータをダウンロードする

_では、Zaimの内部ではこのモバイルSuicaの取引データをどのように格納しているのか、を見てましょう。どうやらZaimには(2018年12月以降のデータを取り込め、と指定したにもかかわらず)2018年9月以前のデータが入っているようですから、2018/08/01以降のデータをダウンロードします↓。

口座連携直後の取引データをZaimからDLする

_ダウンロードしたデータの主要部分を抜粋したものが↓です。ZaimからDLされるCSVファイルの項目名は、実は「日付、方法、カテゴリ、カテゴリの内訳、支払元、入金先、品目、メモ、お店、通貨、収入、支出、振替、残高調整、通貨変換前の金額、集計の設定」なのですが、本記事では品目、メモ、お店の列は非表示にしていますのでご注意ください。

_さて、筆者はモバイルSuicaサイトと連携させる場面では、2018/12/01以降のデータを取り込めと指定しました。しかし、モバイルSuicaのサイトは過去100件の利用履歴を表示できるので、指定日以前のデータがまだ取り込める場合は、Zaimはそれを「残高調整データ」として格納するのです。↓のデータの先頭、2018/09/20の残高調整6,099円というのが、前述したモバイルSuicaの利用履歴データにおける9月20日の「1,296円利用した結果、残高が6,099円になった」というデータに相当します。このため、Zaimでは12月より前の残高推移までグラフ表示されるわけです。

口座連携直後のモバイルSuicaの取引データ

4.Zaimの残高調整データはどのような動作をするのか

_↑のデータで、「2018/09/20の残高調整6,099円」の行は…「現時点でZaimが認識している2018/09/20時点の『モバイル Suica』の残高に6,099円を加算せよ」という意味です。この「現時点で」というのがミソでして、この残高調整データは2019/02/22(筆者がZaimにモバイルSuicaサイトからデータを取得させた最初の日)にZaimが勝手に作成したものですから、この時が「現時点」となります。そして、その時点では2018/09/20より前のデータはZaim内には存在していないので、Zaimは2018/09/20時点の残高を0と認識しています。そこへ6,099円を加算した金額が新たな残高になるわけです。

_ちなみに、「入金先」欄に口座名が入っている場合は加算、「支払元」欄に口座名が入っている場合は減算です。その下の2018/09/20の残高調整403円は減算ですから、これで「403円利用したというデータが」このように化けていることが判ります。

_また、「方法」欄にbalanceと入っているデータ(残高調整データ)は、ZaimのWeb版およびアプリ版では必ず非表示となります。そのため、このデータが入っていると、取引履歴を遡行しても残高推移を正しく認識することはできませんし、それをユーザが気づくのも困難です。

_なお、↑のデータの先頭行は、モバイルSuicaサイトのデータでは「1,296円利用した結果、残高が6,099円になった」となっていたのに対し、Zaim側に取り込まれた際には「1,296円利用した」という情報が欠落しています。このことも、後で影響が出てきますので覚えておいてください。


注目の記事

家計簿アプリとデータをやりとりする際のファイル形式のまとめ

_今回の主題は…家計簿アプリとデータをやりとりするときに使用するファイルの形式について、です。筆者がこれまで MFFマクロ に対応させてきた家計簿アプリは27種類(Money通帳とあっと家計簿は別カウント)。まず、家計簿アプリからエクスポートする方向では↓のようになります。...

最近の人気トップ3