【2022年最新】スプレットシートで家計簿を作ってみた【GAS】

こんにちは、たくまろです!

今回は、スプレットシートを使って簡単な家計簿を作ってみたいと思います。
家計簿アプリは機能が多すぎて難しい!
自分なりにアレンジした家計簿を作りたい!
このような方にスプレットシートを使った家計簿はピッタリです。

ここではGAS(Google App Scripte)を用いた設計を考えていますが、GASを扱ったことがない人でもコピペするだけなので、誰でも作れると思います。
これを見れば、自作の家計簿の開発を簡単に行うこと間違いなしです!
最終的な完成形はこちらのリンクから閲覧のみ可能です。

たくまろのプロフィール

大学・大学院の数学専攻で統計学の勉強をしていました。
現在はデータサイエンスとして働いています。

Twitter >>> @takumaroblog

  1. まずはスプレットシートを開いて適当に名前をつけましょう。
  2. 以下の様に支出や収入と決済方法の表を作ります。
    お好みで、投資などの欄を追加しても良いですね。
    シートの名前も項目にしときます。
  3. そしたら、収入の列の項目を選択して、「データ名前付きの範囲」を選択します。
    まずは収入の範囲設定をするために、A2:A5を選択します。
    そして、収入と名前をつけて、’項目’!A2:A5を範囲指定して完了を押します。
    同様に支出や投資の範囲指定もしてください。
    以下の様に3つ全ての範囲指定が完了です。
  4. 次に集計用のシートを用意して、下のような2つの表を作ってください
    上の色がついているセルが入力用で、下の長い部分が集計用というイメージで作っています。
    便利なので、ついでに下の表にフィルタをかけておきましょう。
    下の表を全選択して「データフィルタを作成」選択すればOKです。
  5. A列の表示形式を日付にします。
    A列を選択して、「表示形式数字日付」で変更することが出来ます。
  6. 項目シートのF1に次の様な関数を書きましょう。
    この段階では、まだエラーが出ると思いますが、気にしなくて良いです。

    =INDIRECT('集計'!B2)

  7. 項目の欄に入力規制をします。
    B2セルを選択して。「データデータの入力規則」を選びます。
    リストを範囲で指定するを選んで、’項目’!A1:C1を選択すると、収入・支出・投資の3種類で入力規制がかかります。
  8. 同様に内訳にも入力規制を設けます。
    ここでは、’項目’!F1:F11を選択します。

    INDIRECT関数を使うことで、項目によって内訳に出てくる選択肢が変わってきます。


  9. 決済方法の部分も同様に入力規制をしましょう。
  10. 収支を求める関数を書きます。
    僕はSUMIFを使ってF2に作っていますが、適宜アレンジしてください。
    ここまでで大枠は完成しました。

    =SUMIF(B5:B999,"収入",F5:F999)-SUMIF(B5:B999,"<>収入",F5:F999)

  11. 最後に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});
    }

  12. スクリプトを実行するボタンを作ります。
    再度、スプレットシートのタブに戻り、「挿入図形描写」からいい感じのボタンを作ります。
  13. 作ったボタンにスクリプトを割り当てます。
    ボタンを選択して、右上の点々からスクリプトの割り当てを選択します。

    先ほど作成した、関数名”myFunction”を入力します。
  14. ここまですれば、GASのスクリプトが実行されます。
    初回に限り次の様なポップアップが表示されるので、承認してください。

    承認をする過程で「このアプリはGoogleで確認されていません」という表示が出ると思います。
    そうしたら、左下の詳細から、家計簿(安全ではないページ)に移動をクリックすれば、元の画面に戻り、スクリプトを実行することが出来ます。
  15. このGASによって2行目に入力した情報が集計用の表に、日付でソートされて追加することが出来ます。
    <実行前>
    <実行後>
    基本的に2行目で入力して、GASでその情報を集計表に移して収支を確認するという様な作りになっています。
  16. 以上で大まか仕組みは完成したので、これ以降は見やすくするひと工夫です。
    まずA5:F5を選択して、「表示形式条件付き書式」を選択します。

    以下の様に条件を追加して、支出の時は赤い文字、収入の時は青い文字になるように変更します。

    5列目をコピーして、書式のみ貼り付けを行えば、残りの行にもこの条件が反映されます。
  17. 最後にした情報が多くなると、入力する行が見えなくなるので、行を固定します。
    2行目を選択して、「表示固定行2まで」を選択すれば固定することが出来ます。

以上で終了です。
スプレットシートで自作の家計簿を作ると、比較的簡単にアレンジをすることができるので、既存の家計簿アプリに不満を持っている方におすすめです!

当ブログでは、他にもGASの開発に関する記事をいくつか紹介しています。
良かったら、合わせてご覧ください!
GASを用いた動的サイトのスクレイピングで金相場表作ってみた
PhantomJsCloudを用いた動的サイトのスクレイピングのやり方

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です