MoneyForwardMe無料版でできない比較機能をGoogleスプレッドシートで機能拡張する

## はじめに
MoneyForwardMe無料版で実現していない「月単位での比較」「1年以上前とのデータ比較」「Zaimみたいな月次比較」をGoogleスプレッドシートで機能拡張しました。
<img width="977" alt="スクリーンショット 2019-07-15 14.07.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90313/f8b577ca-79f9-3a04-ee6c-6cb0e8fea76d.png">

### なぜこれを作ったか
筆者は2017年1月家計簿として「[zaim](https://zaim.net)」を利用していましたが、下記の事情により、2019年6月より「[MoneyForwardMe](https://moneyforward.com/)」に鞍替えしました。

- 2018年後半より支払いのほとんどをクレジットカード・ID・Suicaのいわゆる"キャッシュレス決済"に移行。
- 銀行口座・クレジットカード・ポイントなどの振り分けがzaimではうまくできず、月ごとにクレジットカードの仕様記録をcsvでダウンロード→zaimにアップロード→手修正、と実施していたが、煩雑。MoneyForwardMeでは10個までならクレジットカード・銀行口座を登録でき、かつ、「振替」によって支払い科目を勘定しないようにでき、うまく連携できた
    - ※ひょっとしたらzaimでもうまくできたかもしれないが、本題はそこではないので割愛
- そもそも、zaimでの会計科目手修正が煩雑(MoneyForwardだと、修正内容を踏まえて科目振り分けを行う機能があるし、1回ごとの切り替えが1クリックで済む)

ただし、zaimで実現できていた<b>「CSVの出力」「月ごとの比較」「1年以上前とのデータの比較(去年と比べて支払いはどう変わったか)」</b>が無料版では使用できませんでした。
そこで、<b>「使用できないなら自分で作ろう」</b>と思い立ち、作成しました。作成時間は6時間です。

![名称未設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90313/bc372ef2-8e7e-b90f-7f35-13d0b7278652.png)
この画面を見て燃えた

### この資料の対象
- MoneyForwardMeでも年単位での比較をしたい人
- Zaimの比較画面が使いやすくて好きだったのでMoneyForwardでも実現したい人
- 1つのクラウドサービスにデータを持たせ続けることに抵抗感を感じる人
    - とはいえ、結局Googleスプレッドシートにデータを持たせている・・・という点に関しては今回は考えないものとする。「1つのクラウドサービスにとらわれない」くらいの気持ちで読んでいただければ幸いです
    
### 前提知識
- MoneyForwardMeの独自用語については説明しないものとする。
    - 初めてログインしてからこのQiitaを書くまでに8時間くらいしか作業していないので、理解するのにそこまでは苦しくないと思われる
    
## 作成資料
[Googleスプレッドシート](https://docs.google.com/spreadsheets/d/1VohWVKZtlClc_QHFWR3w7Yok0ANjWk2nEDoz98Lfimo/edit?usp=sharing)
- ダミーデータ作成のため、random関数を多用しているためデータが都度切り替わります

## 機能説明(シート説明)
### 使用方法
①MoneyForwardMe「会計」タブから、月次で作成した項目を手動コピーする
<img width="1198" alt="スクリーンショット 2019-07-15 14.13.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90313/5d6924dd-339b-7035-4f9d-c14a53b77ac7.png">

②コピーした内容をGoogleスプレッドシートに貼り付け、整形
<img width="1211" alt="スクリーンショット 2019-07-15 14.14.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90313/3c605786-7101-00ba-91a1-88c68fcc1c53.png">
- 作成したシートは月ごとに保存

③"集計表"、"集計表(年次)"で月ごとの集計方法を確認する

④月ごとの詳細はシート内のリンクを設置
- シート内のリンクについてはGoogleAppScriptを使用(スクリプトは[ここ](https://www.wmapst.net/google/gss/20161207-google-spreadsheet-sheet-name-get/)から引用)

### 実現したいこと
- 月vs月の比較ができるようにしたい
- 月次の費用遷移を見られるようにしたい。MoneyForwardMeは1年以上前のデータは閲覧できないので、閲覧できるようにしたい

### 集計表
<img width="977" alt="スクリーンショット 2019-07-15 14.07.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90313/9a1caf66-5c1d-453d-5080-383e5a9c45c5.png">
- 黄色セルに比較したい年月のシートをそれぞれ入力すると、比較表を出力する。

### 集計表(年次)
<img width="1214" alt="スクリーンショット 2019-07-15 14.10.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90313/9d09c076-ad84-dd75-d09d-2249bb3962a2.png">
- 比較元の年月を記入するとその年月から遡って1年分(12ヶ月)の比較表を出力する。
- 出力する項目を減らしたい場合は、セルを非表示にすればグラフの表示数が減る

### MoneyForward拡張
<img width="1211" alt="スクリーンショット 2019-07-15 14.14.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90313/eae41abd-f2d9-c98e-b1a2-dfe739303261.png">
- MoneyForwardからのコピー後、うまく貼れない(1行目だけセルが1つ左にずれる)ので、整形するためにこのシートを用意
- "MM/DD(DDD)"形式から"YYYY-MM-DD"に変換

### templete および YYMM
- 「CSV出力」の機能にも該当する。
- 月ごとの集計も兼ねる。
<img width="951" alt="スクリーンショット 2019-07-15 14.26.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90313/4556403f-9a26-676f-4c60-9588953c5cc2.png">

## 機能拡張
- MoneyForwardMeでは中項目の追加ができる。Googleスプレッドシートの行追加で対応可能。グラフの描画範囲に注意すること。