【Notion】家計簿をもっと便利に!map×filterで月別×カテゴリ別を自動集計する方法

Notionで家計簿を作っていると、「カテゴリごとの支出は見えるけど、月別でも見たいな…」ってなりませんか?

私もまさにそれで、カテゴリ別の集計はよく使っていたんですが、月ごとの推移も一緒に見たくなりました。そこで今回は、map関数とfilter関数を組み合わせて「カテゴリ×月別」の自動集計を作ってみます。

目次

完成イメージ

まずは完成形から。

3月・4月に発生したカテゴリごとの月別合計と、カテゴリごとの全合計が一覧で確認できます。

これができると、「今月は食費が多かったな」「先月より交際費が減ったな」など、月ごとの変化がパッと見てわかるようになります。

作り方

STEP

カテゴリーデータベースを作成

画像はリレーション設定後

まずは、カテゴリーのデータベースを作成します。
単純なタグ(セレクト)ではなく、別のデータベースにすることで、カテゴリ単位で集計や分析ができるようになります。

カテゴリーは一回設定すれば使いまわせるので、アイコンもつけてみます。

STEP

入力用のデータベースを作成

入力項目

  • 日付
  • 金額
  • カテゴリー(リレーション)

カテゴリーデータベースと相互リレーションを設定したら、月別フィルターのために「月」列を追加しておきます。

構文
month(date)

month(prop("日付"))

month()は日付から月だけを取り出す関数です。この列を使って、あとで「3月だけ」「4月だけ」とフィルターをかけます。

STEP

map関数、filter関数を設定

カテゴリーデータベースに「3月合計」「4月合計」など、月ごとの集計列を追加します。

一個ずつ組み立てると分かりやすいと思いますので、コメント付きで数式を記載します。

構文
リスト.filter(current.条件)
リスト.map(current.列名)

/*「集計」データベースに対して*/
prop("集計")

/*「月」列を3でフィルターし、*/
.filter(current.prop("月") == 3)

/*該当する「金額」列の値を表示し*/
.map(current.prop("金額"))

/*値を合計する*/
.sum()

あとはプロパティをコピーしてフィルターする数字を変更すれば、対応する月ごとの集計ができるので、12ヶ月分作成します。画像の例ではついでにフィルターなしの合計列も作成してみました。
最後の関数sum()を変更すればカウントや平均値も出せますよ。

map関数の基本的な使い方はこちらも参考にしてみてください。

おわりに

カテゴリ×月別の集計ができると、家計簿がグッとダッシュボードっぽくなります。

正直なところ、列が横に増えていくので12ヶ月分が限界かなとは思いますが…一度数式を書いてしまえば、あとは入力するだけなので便利です。

年ごとにデータベースを分けるとか、ビューで表示する月を絞るとか、工夫次第でもっと見やすくなるかもしれません。また試したら追記しますね。

なにかの参考になれば嬉しいです!

ブログランキング・にほんブログ村へ
↑クリックしてもらえると励みになります!
よかったらシェアしてね!
目次