_しばらく間が開いてしまいましたが、Dr.Wallet関連の連載3回目(前回の記事はこちら)は、データのエクスポートと変換の方法についてです。
1.Dr.Walletのデータエクスポート機能は非常に残念
_Dr.Walletは有料プランでデータエクスポート機能を提供していますが、最初にお断りしておきますと、そのデータには大変困ったことに振替取引が一切含まれておりません。2年前にこのことを知り愕然として、今に至るまで改善されていないことにさらに愕然としております。
_エクスポート機能は、Web版にログインして画面右上部のユーザーIDを叩くと出現するメニュー内にあります↓。

_エクスポートの対象期間を指定する機能は無く、Dr.Walletのサーバーに入力されている全データがダウンロードされます。ファイル名はデフォルトでYYYYMMDDHHMMSS.csv(DLした時点の日付と時刻)となります。エクスポート機能は4種類あり、それぞれ解説しますと以下のようになります。
-
CSVエクスポート(商品ごと)
レシートに記載された商品一件を1行とするCSVファイルをUTF-8の文字コードでダウンロードする -
CSVエクスポート(商品ごと・Excel用)
レシートに記載された商品一件を1行とするCSVファイルをShift-Jisの文字コードでダウンロードする -
CSVエクスポート(レシートごと)
1つのレシートの合計金額を1行とするCSVファイルをUTF-8の文字コードでダウンロードする -
CSVエクスポート(レシートごと・Excel用)
1つのレシートの合計金額を1行とするCSVファイルをShift-Jisの文字コードでダウンロードする
_この中で、当Blogで使用すべきは2番目の「CSVエクスポート(商品ごと・Excel用)」です。エクスポートされたデータの例(抜粋しています)を示すと↓のようになります。ちなみに上記のなかで「レシートごと」 を選択した場合は、D列の「品名」が「内容」に変わります。

_↑特徴的なのがレシートIDです。これは入力したデータにDr.Walletの運営側で個別に付与するIDで、同じレシートで入力されているデータのIDは同一になります。MFFマクロは、MFF形式への変換の際に、同じレシートIDの末尾に通し番号を付加して、IDの重複を避けています。このデータをOFXファイルとして出力すると、OFXファイルの<FITID>タグにレシートIDが入るため、取り込み側の家計簿アプリに同じIDのデータを重複して取りこんでしまう事態を回避できます。
2.Dr.WalletのデータをMFF形式へ変換する
_Dr.WalletからエクスポートしたデータをExcelで開いた状態↓でMFFマクロを動作させると、MFF形式への変換処理が始まります。前述のとおり、Dr.Walletはエクスポートするデータの対象期間を指定できないので、MFFマクロ側で変換を行う期間を指定します。

_MFF形式に変換後のデータがこちら↓です。前述のとおり、ID欄に入っている文字列の末尾に通し番号が追加されています。この機能は、元のデータの並び順を変えてしまうとうまく動作しませんのでご注意ありたく(同じレシートIDが連続する前提になっている)。

3.変換処理は実は簡単です
_この変換処理の概要を↓に示します。振替取引が含まれていないので極めて単純。前述したレシートID関係の処理が少々特殊になっているだけです。なお、品名欄に (品名)(@お店)(※メモ) のいわゆるMFF書式で情報を入れておくと、MFF形式の然るべきデータ欄に分解して格納する機能を設けてあります。

_利用した店舗の電話番号と住所(これはDr.Walletがレシートに書いてあるものを入力してくる。実際には電話番号をキーにしたデータベースを構築しているらしい)が入る欄は、他の家計簿アプリでは活用のしようが無いので潔く捨てています。
4.裏口も一応ありますけど
_実は、Dr.Walletにはもう一つ、裏口的にデータを得る方法があります(こちらで紹介されています)。ダウンロードしたCSVファイルとの違いは、振替取引が含まれていることと、店舗に関する情報やレシートIDが含まれていないことです。また、月ごとにデータを得なければならないので、長期間を対象とすると凄まじい手間がかかります。MFFマクロにはこちらのデータをMFF形式に変換する機能も実装していますが、やり方はユーザー各位で見出してください。