_今回は、MFFマクロV2.38で新設した便利機能「MFF形式データの比較」についてご紹介します。二つの家計簿アプリから取り出してMFF形式に変換したデータを比較し、お互いに存在しない(日付・金額が一致しない)データを抽出して、残高不一致等の原因を調査する機能です。当Blogの主題が「家計簿アプリ間のデータ変換」にある以上、データ変換の結果が一致しているかどうかを確認するツールは必要かと思いまして作成しました。
1.比較するMFF形式データを準備する
_サンプルとして↓のようなデータを準備します。このデータはExcelブックの第一ワークシートに配置します。

_次に、比較対象のデータを第二ワークシートに配置します↓。第一ワークシートのデータとの差異は、
- 4行目、8/12の459円の買い物の内容欄(シェービングクリーム)が空になっている
- 7行目、8/12の120円のペットボトルの支出額が120円ではなく150円になっている
- 第一ワークシートの11行目にあったチケットショップでの売却益のデータが抜けている
- 16行目、8/11の「富士山のおいしい水」が"72明細分離用"口座からではなく"71給与振込用"口座からの支払いになっている
_の4か所です。赤文字は、判りやすいように筆者が色を入れました。

2.MFFマクロの便利機能を動作させる
_Excelの操作を第一ワークシートに戻し↓、F1セル("COMMAND"が入っている)のプルダウンメニューから"MFF形式データを比較"を選択。セルカーソルをF1セルに合わせたままMFFマクロを動作させると、↓のようなダイアログが出現します。なお、ここでキャンセルするような機能は設けていません。この機能は、ただセルに黄色を塗るだけで、データそのものは何もいじらないからです。
_なお、この機能で比較するのは日付・支出・収入欄のみです。

3.データ比較の結果
_まず、第一ワークシート側の結果を解釈しましょう。
- 7行目、ペットボトル130円のデータに黄色が塗られていない。これは、このデータが比較相手(第二ワークシート)に無いことを示している。第二ワークシートではここは150円になっているから。
- 11行目の売却益も同様。このデータはそもそも第二ワークシートから抜けている。

_次に第二ワークシートの結果を解釈します。
- 4行目の日用品459円は第一ワークシートではシェービングクリームを買ったことになっているが、第二ワークシートでは内容欄が空になっている。しかし、内容欄は比較対象ではなく、日付と金額は合っているので黄色に塗られている。
- 7行目のペットボトルは第一ワークシートでは130円のところ、こちらでは150円のため「第一ワークシートには無いデータである」として黄色を入れていない。
- 16行目は、第一ワークシートが"72明細分離用"口座、第二ワークシートでは"71給与振込用"口座からの支払いになっているが、口座名も比較対象ではないので黄色を入れていない。
_このように、日付と金額についてのみ、比較相手のワークシートに存在しないデータに「黄色を入れない」という形で比較結果を返すようにしています。

_なお、この便利機能は…二つのデータの順序が狂っていても正しく動作します。ただし、実行速度はかなり遅く、データ量が多いほどより実行時間がかかります。原始的な手順で処理を行っているためですが、まあ頻繁に行う操作ではない、ということでご容赦ください。