こんにちは、たくまろです!
今回は、スプレットシートを使って簡単な家計簿を作ってみたいと思います。
「家計簿アプリは機能が多すぎて難しい!」
「自分なりにアレンジした家計簿を作りたい!」
このような方にスプレットシートを使った家計簿はピッタリです。
ここではGAS(Google App Scripte)を用いた設計を考えていますが、GASを扱ったことがない人でもコピペするだけなので、誰でも作れると思います。
これを見れば、自作の家計簿の開発を簡単に行うこと間違いなしです!
最終的な完成形はこちらのリンクから閲覧のみ可能です。
たくまろのプロフィール
- まずはスプレットシートを開いて適当に名前をつけましょう。
- 以下の様に支出や収入と決済方法の表を作ります。
お好みで、投資などの欄を追加しても良いですね。
シートの名前も項目にしときます。
- そしたら、収入の列の項目を選択して、「データ>名前付きの範囲」を選択します。
まずは収入の範囲設定をするために、A2:A5を選択します。
そして、収入と名前をつけて、’項目’!A2:A5を範囲指定して完了を押します。
同様に支出や投資の範囲指定もしてください。
以下の様に3つ全ての範囲指定が完了です。
- 次に集計用のシートを用意して、下のような2つの表を作ってください
上の色がついているセルが入力用で、下の長い部分が集計用というイメージで作っています。
便利なので、ついでに下の表にフィルタをかけておきましょう。
下の表を全選択して「データ>フィルタを作成」選択すればOKです。
- A列の表示形式を日付にします。
A列を選択して、「表示形式>数字>日付」で変更することが出来ます。
- 項目シートのF1に次の様な関数を書きましょう。
この段階では、まだエラーが出ると思いますが、気にしなくて良いです。=INDIRECT('集計'!B2)
- 項目の欄に入力規制をします。
B2セルを選択して。「データ>データの入力規則」を選びます。
リストを範囲で指定するを選んで、’項目’!A1:C1を選択すると、収入・支出・投資の3種類で入力規制がかかります。
- 同様に内訳にも入力規制を設けます。
ここでは、’項目’!F1:F11を選択します。
INDIRECT関数を使うことで、項目によって内訳に出てくる選択肢が変わってきます。 - 決済方法の部分も同様に入力規制をしましょう。
- 収支を求める関数を書きます。
僕はSUMIFを使ってF2に作っていますが、適宜アレンジしてください。
ここまでで大枠は完成しました。=SUMIF(B5:B999,"収入",F5:F999)-SUMIF(B5:B999,"<>収入",F5:F999)
- 最後にGASで入力エリアに書いた情報を集計表にソートして追加するGASを書きます。
まずは、「拡張機能>Apps Script」でエディターを開きます。
そしたら、エディターに以下のスクリプトをコピペして保存してください。
なお保存はCtrl+Sもしくはcommand+Sで出来ます。
GASについては、『詳解! Google Apps Script完全入門』などの入門書で詳しく学べます。function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); //最終行取得 var lastRow = sheet.getLastRow(); Logger.log(lastRow); //値を取得して最終行に移動 let range = sheet.getRange("A2:F2"); let values = range.getValues(); Logger.log(values[0]); sheet.appendRow(values[0]); range.clearContent() //日付順にソート let data = sheet.getRange(5, 1, lastRow, 6); data.sort({column: 1, ascending: true}); }
- スクリプトを実行するボタンを作ります。
再度、スプレットシートのタブに戻り、「挿入>図形描写」からいい感じのボタンを作ります。
- 作ったボタンにスクリプトを割り当てます。
ボタンを選択して、右上の点々からスクリプトの割り当てを選択します。
先ほど作成した、関数名”myFunction”を入力します。 - ここまですれば、GASのスクリプトが実行されます。
初回に限り次の様なポップアップが表示されるので、承認してください。
承認をする過程で「このアプリはGoogleで確認されていません」という表示が出ると思います。
そうしたら、左下の詳細から、家計簿(安全ではないページ)に移動をクリックすれば、元の画面に戻り、スクリプトを実行することが出来ます。
- このGASによって2行目に入力した情報が集計用の表に、日付でソートされて追加することが出来ます。
<実行前>
<実行後>
基本的に2行目で入力して、GASでその情報を集計表に移して、収支を確認するという様な作りになっています。
- 以上で大まか仕組みは完成したので、これ以降は見やすくするひと工夫です。
まずA5:F5を選択して、「表示形式>条件付き書式」を選択します。
以下の様に条件を追加して、支出の時は赤い文字、収入の時は青い文字になるように変更します。
5列目をコピーして、書式のみ貼り付けを行えば、残りの行にもこの条件が反映されます。
- 最後にした情報が多くなると、入力する行が見えなくなるので、行を固定します。
2行目を選択して、「表示>固定>行2まで」を選択すれば固定することが出来ます。
以上で終了です。
スプレットシートで自作の家計簿を作ると、比較的簡単にアレンジをすることができるので、既存の家計簿アプリに不満を持っている方におすすめです!
当ブログでは、他にもGASの開発に関する記事をいくつか紹介しています。
良かったら、合わせてご覧ください!
GASを用いた動的サイトのスクレイピングで金相場表作ってみた
PhantomJsCloudを用いた動的サイトのスクレイピングのやり方