この記事では、私が以前紹介したNotionで収支を管理できる家計簿を関数を使ってスッキリさせる方法を紹介します。
以前の家計簿紹介記事はこちら。
よりシンプルなデータベース構造になり、軽量になることでアクセスが遅くなることも避けやすくなりました。
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の書籍を参考にしたい方におすすめ
Notionに関する書籍を参考にしたい方はこちらの本がおすすめです。
初心者にとっても分かりやすくNotionの全体像を解説してあります。
さらに私のNotionに関する記事を基にした書籍も発売中です。
これからNotionを始めたい方、Notionでできることを網羅的に知りたい方はぜひ参考にしてみてください。
Notionで作成した家計簿を関数を使って改善する方法
ここから実際に改善する方法を紹介していきます。
カテゴリー別支出を関数を使って算出する
まずはカテゴリー別支出を関数を使って算出してみたいと思います。
今までのカテゴリー別支出は、収支管理.dbの中で関数プロパティで日付によって月を判別し1〜12月の支出プロパティの中に値段が保存されるようにしていました。
そしてそれをロールアップで合計するという仕組みをとっていました。
それを今回、ロールアップを使わず関数を使って改善します。
まずは関数プロパティをカテゴリー別支出.dbに追加し、以下のような関数を加えます。
数式で行っているのは以下です。
- filter()でリレーション先の「収支管理-2023.db」の中で日付が1月のものだけを抽出
- map()で値段プロパティだけを抽出した配列を返す
- sum()で値段だけが入った配列の合計を求める
これでロールアップを使わず、選択されたカテゴリーごとの1月分の支出が算出できるようになりました。
あとはプロパティの編集で数値の形式を「円」に変更すれば今まで同じ表示になります。
2月以降も同じように月の部分だけを変更して作成していきます。
これでロールアップを使わずカテゴリー別支出を表示させることができました!
年間収支を関数を使って算出する
続いては年間収支です。
数式で行っているのは以下です。
- map()で収入プロパティだけを抽出した配列を返す
- sum()で収入だけが入った配列の合計を求める
filterが不要になっているのでシンプルです。
選択された「月」の収入の合計を算出しています。
支出合計は収入の箇所を支出のプロパティに変えるだけです。
不要になったプロパティを削除
これで関数を使って今までと同じ値を算出させることに成功しました。
あとはこれによって不要になったプロパティがあるので削除します。
基となるデータベース内の関数プロパティは全て削除可能です!(赤枠部分)
スッキリさせたデータベースが以下になります。
不要な1月〜12月までの支出・収入のプロパティが削除できたので24個のプロパティを削除できるようになりました。
データベース構造的にも、値が入らないことが多いプロパティをなくすことができるので効率的です。
関数を使うことでデータベース負荷を軽くする家計簿にできる
いかがだったでしょうか。
関数を使うことで家計簿が見た目的にもスッキリし、動作も軽くなります。
- ロールアップを使わなくて済む
- 無駄なプロパティを削除できる
このようなメリットがあるので皆さんも関数を使いこなしてみてはいかがでしょうか。
最初はとっつきにくいかもしれませんが慣れるととても便利です。
以下記事で新しくなった関数プロパティについても紹介しているので参考にしてみてください。