一人暮らしの固定費を自動で集計する。Googleスプレッドシートに入れるだけのGAS

ガジェット
記事内に商品プロモーションを含む場合があります。

固定費の見直しは、まず全部を1枚に並べて見える化するのが最初。頭の中で「たぶん月10万くらいかな」と思っているうちは、どれが高いのか分からないから手がつけられない。

ただ、家計簿アプリは入力が続かない。手計算の表は更新が面倒で、3ヶ月で放置される。だから僕は、Googleスプレッドシートに金額を入れるだけで、月合計・年額・1日あたり・高い順まで自動で出るようにGAS(Google Apps Script)を組んでいる。コードは下にそのまま貼ってあるので、コピペで動きます。

なぜアプリじゃなくスプレッドシートとGASなのか

固定費って、項目が少なくて、めったに変わらない。家賃、通信、電気ガス水道、サブスクをいくつか。せいぜい10〜15行で、更新も月に一度あるかどうか。

この「数が少なくて、変わりにくい」性質に、家計簿アプリはオーバースペックなんですよね。毎日コーヒー代を打ち込む機能は、固定費には要らない。逆に、自分の好きな形で並べたり計算したりは、スプレッドシートのほうが自由が利く。

そこにGASを足すと、「合計を出す」「年額に換算する」「高い順に並べる」を、ボタン一発でやってくれる。手で電卓を叩く工程が消えるので、見直しが面倒じゃなくなる。続かない原因はだいたい「面倒」なので、そこを仕組みで潰す発想です。

準備:シートを1枚作る

新しいGoogleスプレッドシートを開いて、シート名を「固定費」にする。1行目に見出しを置いて、2行目から自分の固定費を入れていきます。

A列:項目B列:月額(円)C列:カテゴリ
家賃62000住居
スマホ2980通信
ネット回線4500通信
電気4000光熱
動画サブスク990サブスク

金額は数字だけで入れる(「円」やカンマは入れない)。カテゴリは自分の好きな分け方でいい。住居・通信・光熱・サブスク、くらいのざっくりで十分です。

※この表の数字はサンプルです。あなた自身の固定費に置き換えてください。

コード:これをコピペするだけ

スプレッドシートのメニューから「拡張機能」→「Apps Script」を開く。最初に出ているコードを全部消して、これを貼り付けて保存します。

/**
 * 一人暮らしの固定費を集計して「集計」シートに書き出す
 * シート「固定費」に  A:項目  B:月額(円)  C:カテゴリ  を入力して実行する
 */
function summarizeFixedCosts() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('固定費');
  if (!sheet) throw new Error('「固定費」という名前のシートが見つかりません');

  const last = sheet.getLastRow();
  if (last < 2) { Browser.msgBox('データがありません'); return; }

  // 2行目以降の A〜C列を読む
  const rows = sheet.getRange(2, 1, last - 1, 3).getValues();

  let total = 0;
  const byCategory = {};
  const items = [];
  rows.forEach(([name, monthly, category]) => {
    if (!name || !monthly) return;            // 空行はとばす
    const yen = Number(monthly);
    total += yen;
    const cat = category || '未分類';
    byCategory[cat] = (byCategory[cat] || 0) + yen;
    items.push({ name, yen });
  });

  items.sort((a, b) => b.yen - a.yen);          // 高い順に並べる

  // 「集計」シートを用意して書き出す
  let out = ss.getSheetByName('集計') || ss.insertSheet('集計');
  out.clear();

  const lines = [];
  lines.push(['固定費まとめ', '']);
  lines.push(['月合計', total]);
  lines.push(['年額(×12)', total * 12]);
  lines.push(['1日あたり', Math.round(total * 12 / 365)]);
  lines.push(['', '']);
  lines.push(['カテゴリ別(高い順)', '']);
  Object.keys(byCategory)
    .sort((a, b) => byCategory[b] - byCategory[a])
    .forEach(cat => lines.push([cat, byCategory[cat]]));
  lines.push(['', '']);
  lines.push(['項目(高い順)', '']);
  items.forEach(it => lines.push([it.name, it.yen]));

  out.getRange(1, 1, lines.length, 2).setValues(lines);
  out.getRange('B:B').setNumberFormat('#,##0"円"');
  out.autoResizeColumns(1, 2);
}

保存したら、関数名が `summarizeFixedCosts` になっているのを確認して「実行」ボタンを押す。初回だけGoogleの承認画面が出ます。これは「自分のスクリプトが、自分のスプレッドシートを触っていいか」という確認なので、進めて大丈夫。

実行が終わると、「集計」というシートが自動で増えていて、そこに結果が出ています。月合計・年額・1日あたり・カテゴリ別・項目別が、一気に並びます。

何が出るか

このコードを動かすと、入力した固定費から次が自動で出ます。

  • 月合計
  • 年額(月合計×12)
  • 1日あたり(年額÷365)
  • カテゴリ別の小計(高い順)
  • 項目別の一覧(高い順)

効くのは「年額」と「1日あたり」なんですよね。月990円のサブスクは安く感じるけど、年にすると11,880円。1日あたりに割ると、固定費の合計が「1日◯円で暮らしている」と見えてくる。月額のままだと麻痺していた金額が、急に自分ごとになります。

そして高い順に並ぶので、見直すべき順番が一目で分かる。たいていは家賃と通信が上に来るはずで、そこを動かさないと固定費は大きく下がらない、というのも数字で納得できます。

一歩進める:毎月自動で、メールに届かせる

毎回ボタンを押すのも面倒なら、トリガーで自動実行にできます。次の関数を一度だけ実行すると、毎月1日の朝に集計が走るようになる。

function createMonthlyTrigger() {
  ScriptApp.newTrigger('summarizeFixedCosts')
    .timeBased()
    .onMonthDay(1)
    .atHour(9)
    .create();
}

さらに、集計結果を自分宛にメールで送りたいなら、`summarizeFixedCosts` の最後(`out.autoResizeColumns` の次の行)にこれを足します。

  MailApp.sendEmail({
    to: Session.getActiveUser().getEmail(),
    subject: '今月の固定費:' + total.toLocaleString() + '円',
    body: '月合計 ' + total.toLocaleString() + '円 / 年額 ' + (total * 12).toLocaleString() + '円'
  });

これで、毎月1日に「今月の固定費 ◯◯円」が勝手にメールで届く。見ようとしなくても目に入る状態になるので、見直しのきっかけを逃さなくなります。

使いどころと、できないこと

正直に書いておくと、これは万能じゃないです。

銀行口座やカードの明細を自動で取り込むことは、GAS単体ではできません。固定費は手入力です。ただ固定費は項目が10個前後で月1更新なので、入力にかかるのは数分。そこは割り切っています。

変動費(食費や娯楽費)の管理にも向きません。あれは件数が多いので、レシート読み取りのある家計簿アプリのほうが楽です。このスプレッドシートは「数が少なくて変わりにくい固定費」専用と考えてください。

あと、GASに触るのがどうしても不安なら、コードは使わなくてもいい。出力の考え方(月額を年額に直す→1日あたりに割る→高い順に並べる)だけ真似て、手動の表で電卓を叩いても、見える化の効果は同じです。仕組みはあくまで「続けるための手間減らし」なので。

持ち物を同じように一覧で管理する話はNotionで持ち物を管理するにも書いたし、サブスクそのものの棚卸しはデジタル断捨離で具体的に触れています。あわせてどうぞ。

▶ 具体的な選び方は、一人暮らしの節約は固定費から。効果順の見直しリスト にまとめました。

▶ あわせて 家計簿アプリ比較もどうぞ もどうぞ。

よくある質問

  • プログラミングは未経験です。それでも使えますか?
  • 銀行やクレジットカードと連携して、自動で取り込めますか?
  • 変動費も同じシートで管理したほうがいいですか?

プログラミングは未経験です。それでも使えますか?

コピペと「実行」ボタンだけで動くように書いてあります。コードの中身を理解する必要はありません。最初の一度だけGoogleの承認画面が出ますが、自分のスクリプトが自分のスプレッドシートを触る許可なので、進めて問題ないです。詰まりやすいのはシート名くらいで、シートの名前が「固定費」になっていれば動きます。

銀行やクレジットカードと連携して、自動で取り込めますか?

GAS単体ではできません。固定費は手で入力する前提です。ただ固定費は項目が少なく、変わるのも引っ越しや乗り換えのときくらいなので、一度入れてしまえば更新はほとんど発生しません。「自動取得」より「一度入れて放置」が現実的だと思っています。

変動費も同じシートで管理したほうがいいですか?

分けたほうがいいです。食費のような変動費は件数が多くて、毎日打ち込むことになるので、このやり方だと続きません。変動費は家計簿アプリ、固定費はこのスプレッドシート、と役割を分けるのがラクです。固定費のほうが金額が大きくて見直しの効果も出やすいので、まずは固定費だけで十分。

固定費は、気合いで節約するものじゃなくて、一度見える化して、高い順に上から見直すもの。手計算だと続かないから、入れるだけで出る状態にしておく。あとは年に一度か二度、メールで届いた数字を眺めて、上のほうを動かせないか考えるだけです。まずはシートを1枚作るところから、気軽にどうぞ。