Notionで作る家計簿を関数を使って改善【filter(), map(), sum()】

この記事では、以前紹介したNotionで収支を管理できる家計簿を、関数を使ってよりスッキリさせる方法を紹介します。

以前の家計簿紹介記事はこちら。

https://gyas.co.jp/knowledge_blog/notion-money-consolidate/

データベース構造をよりシンプルにすることで、動作が軽くなり、アクセスが遅くなる問題も起こりにくくなりました。

Notionで家計簿を作成したい方はもちろん、filter()・map()・sum()の使い方を知りたい方にもおすすめの内容です。

この記事を読むメリット

  • Notionでシンプルなデータベース構造で収支を管理する家計簿を作成方法が分かる
  • 最近追加された関数「filter(), map(), sum()」の使い方が理解できる

今回紹介する新しい家計簿のテンプレートも無料で配布します!

家計簿テンプレート

今までの家計簿の構造

これまで作成していた家計簿では、リレーションとロールアップを使って、月別・カテゴリー別の収支を計算していました。

その結果、基となるデータベースに多くのプロパティを追加する必要がありました。

プロパティでそれぞれ、1月?12月の支出と収入を入れるプロパティを作成しています。

4月に支出で新しいデータを入力すると、4月支出のプロパティにその支出の値段が自動で入るような関数を作成しています。

リレーションと各種プロパティを使って、月ごとの収支を算出・表示していました。

カテゴリー別支出でロールアップ使用

リレーションについてはこちら。

Notionのリレーションとは?使い方をわかりやすく解説【基礎編】

 

年間収支に関しても同様です。

年間収支でロールアップ使用

Notion公式もデータベースの読み込みに関して記事出してる

この大量のプロパティを無くし、ロールアップを使わず収支を計算する仕組みを次章から紹介します。

先日Notionからも、速度を早めたりアプリを軽くしたいなら「ロールアップなどの複雑な参照を避ける」ということが書かれていました。

https://www.notion.so/ja-jp/help/optimize-database-load-times-and-performance

そのため、ロールアップの使用をできるだけ避け、プロパティ数を減らすことで、データベースの負荷が軽くなり、結果的に使いやすくなります。

私自身もこの改善を行ったことで、ページを開くまでの時間が短縮されました。

皆さんもぜひこれから紹介する方法で家計簿作成してみてください。

今回は前回の記事で紹介した収支を管理する家計簿を修正していく流れですのでまだその家計簿を知らないという方はこちらから参考にしてみてください。

複製もできるようになっているので複製して一緒に修正できるようになっています。

Notionで作成した家計簿を関数を使って改善する方法

ここから実際に改善する方法を紹介していきます。

カテゴリー別支出を関数を使って算出する

まずはカテゴリー別支出を関数を使って算出してみたいと思います。

今までのカテゴリー別支出は、収支管理.dbの中で関数プロパティで日付によって月を判別し1?12月の支出プロパティの中に値段が保存されるようにしていました。

今までのカテゴリー別支出

そしてそれをロールアップで合計するという仕組みをとっていました。

カテゴリー別支出でロールアップ使用

今回はこの仕組みを、ロールアップを使わず関数だけで改善していきます。

まずは関数プロパティをカテゴリー別支出.dbに追加し、以下のような関数を加えます。

関数を使ってカテゴリー別支出算出

この数式で行っている処理は以下の通りです。

  • filter()でリレーション先の「収支管理-2023.db」の中で日付が1月のものだけを抽出
  • map()で値段プロパティだけを抽出した配列を返す
  • sum()で値段だけが入った配列の合計を求める

これにより、ロールアップを使わずに、選択されたカテゴリーごとの1月分の支出を算出できるようになりました。

あとはプロパティの編集で数値の形式を「円」に変更すれば今まで同じ表示になります。

数値の形式「円」に変更

2月以降も同じように月の部分だけを変更して作成していきます。

これでロールアップを使わずカテゴリー別支出を表示させることができました!

年間収支を関数を使って算出する

続いては年間収支です。

年間収支を関数を使って算出
Screenshot

数式で行っているのは以下です。

  • map()で収入プロパティだけを抽出した配列を返す
  • sum()で収入だけが入った配列の合計を求める

filter()が不要になるため、よりシンプルな式になっています。

選択された「月」の収入の合計を算出しています。

支出合計についても、収入プロパティを支出プロパティに置き換えるだけで対応できます。

不要になったプロパティを削除

これで関数を使って今までと同じ値を算出させることに成功しました。

あとはこれによって不要になったプロパティがあるので削除します。

基となるデータベース内の関数プロパティは全て削除可能です!(赤枠部分)

スッキリさせたデータベースが以下になります。

無駄なプロパティを削除

1月〜12月分の不要な支出・収入プロパティを削除でき、合計で24個のプロパティを整理できました。

値が入らないことの多いプロパティを減らせたため、データベース構造としても効率的になりました。

関数を使うことでデータベース負荷を軽くする家計簿にできる

いかがだったでしょうか。

関数を活用することで、家計簿が見た目にもスッキリし、動作も軽くなります。

  • ロールアップを使わなくて済む
  • 無駄なプロパティを削除できる

こうしたメリットがあるため、ぜひ関数を活用した家計簿作成にも挑戦してみてください。

今回紹介した家計簿のテンプレはこちらから。

家計簿テンプレート

最初はとっつきにくいかもしれませんが慣れるととても便利です。

以下記事で新しくなった関数プロパティについても紹介しているので参考にしてみてください。

Notionの関数プロパティが大幅アップデート!重要な点をピックアップして解説

 

Recruit

Contact