【Notion】サブスク管理で次回更新日を自動計算する方法|年払い・月払い対応

サブスク、気づいたら増えていませんか?

Amazon Prime、Netflix、ChatGPT、YouTube…便利なサービスが多すぎて、私も「今いくつ契約してるんだっけ?毎月いくら払ってるんだろう?」状態になっていました。しかも年払いのサービスは更新日を忘れがち。気づいたら引き落とされていた、なんてことも。

そこでNotionでサブスク管理を作ってみました。ポイントは次回更新日を自動計算させること。登録日と更新サイクル(月払い/年払い)を入れるだけで、次の更新日が勝手に出るようにしています。さらに「あと○日」の表示も色分けして、更新が近づいたら気づけるようにしました。

目次

完成イメージ

私はボードビューで「サブスク」「固定費」「解約」に分けて管理しています。

サブスクの下に支払いサイクル、金額(月額換算)、「あと○日」が表示されていて、更新が近いものは一目でわかります。

データベースの構成

まずは必要な列を作ります。主な内容は以下の通り。

プロパティ名種類説明
名前タイトルサービスの名前
状態リレーションサブスク / 固定費 / 解約
単位セレクト月 / 年
期間数値更新サイクルの数字(1、3、12など)
金額数値月額または年額
更新日日付最初に契約した日(課金開始日)
集計対象数式解約済みを除外するためのフラグ
次回更新日数式自動計算(後述)
更新まで数式自動計算(後述)
月額数式自動計算

「更新日」は最初に契約した日最後に課金された日を入れます。無料お試し期間があるサービスなら、課金が始まる日を入れておくのがおすすめです。未来日でも過去日でもOKにしました。

「集計対象」は解約済みを除外するためのフラグです。オフになると、「あと○日」表示がなくなります。
チェック漏れを防ぐため数式にしていて、「状態」の値が「解約」以外の時にチェックが入るようにしています。

ifではうまくいかなかったのでnottestを組み合わせて判定式を作りました。

構文
not()
test(text,pattern)

not( test (prop("状態"),"解約"))

「状態」は別のデータベースを作ってリレーションしていますが、セレクトやステータスでもいいと思います!

次回更新日を自動計算する数式

ここがメインです。年払いでも月払いでも、登録日から自動で次の更新日を出せるようにします。

lets関数を使って計算に必要な変数を先に定義しました。

考え方

  1. 「期間」と「単位」から、何ヶ月ごとの更新かを計算
  2. 登録日から今日までに何サイクル経過したかを計算
  3. 次のサイクルの日付を出力

年払いの場合は「12ヶ月」として計算するので、月払いと同じロジックで処理できます。

数式

lets(
  /* 年払いなら×12して月数に変換 */
  期間月数, if(prop("単位") == "年", prop("期間") * 12, prop("期間")),

  /* 登録日から今日までの経過月数 */
  経過月数, dateBetween(now(), prop("更新日"), "months"),

  /* 何サイクル目に入っているか(切り上げ) */
  必要サイクル, ceil(経過月数 / 期間月数),

  /* 次回更新日を計算 */
  次回, dateAdd(prop("更新日"), 期間月数 * 必要サイクル, "months"),

  /* 1サイクル加算した日付(比較用) */
  加算結果, dateAdd(prop("更新日"), 期間月数, "months"),

  /* 集計対象がオフなら空欄、オンなら次回更新日を出力 */
  if(
    prop("集計対象"),
    ifs(
      prop("更新日") > now(), prop("更新日"),
      加算結果 > now(), 加算結果,
      true, 次回
    ),
    prop("更新日")
  )
)

数式の補足

最後のifsで3パターンに分岐しています。

条件出力
登録日がまだ来ていない登録日をそのまま出力来月から契約開始のサービス
1サイクル後がまだ来ていない1サイクル後を出力契約したばかりのサービス
それ以外計算した次回を出力通常のケース

集計対象がオフの場合は、次回更新日を計算せず登録日をそのまま返すようにしています。集計対象をオフにすることで「あと○日」も表示されなくなります。

「あと○日」を色分けで表示する数式

次回更新日がわかったら、「あと何日か」も表示させましょう。更新が近づいたら色を変えて気づけるようにします。

表示イメージ

  • TEST1:今日が更新日 → 赤文字・赤背景
  • TEST2:7日以内 → 黄文字・黄背景で警告
  • TEST3:それ以外 → デフォルト表示
  • TEST4:集計対象オフ → 非表示

数式

let(
  /* 次回更新日までの日数(当日を含めるので+1) */
  numDays, dateBetween(prop("次回更新日"), now(), "days") + 1,
  ifs(
    /* 集計対象オフなら何も表示しない */
    prop("集計対象") == false, "",
    /* 今日が更新日 */
    prop("更新日") == today(), style("今日が更新日", "c", "red", "red_background"),
    /* 7日以内 */
    numDays < 7, style("あと" + numDays + "日", "c", "yellow", "yellow_background"),
    /* それ以外 */
    numDays > 7, style("あと" + numDays + "日", "c", "default")
  )
)

style関数について

style()はNotionの数式2.0で使えるようになった関数で、文字に色や背景色をつけられます。

style("表示したい文字", "スタイル")

使えるスタイル:

  • 文字色:red, orange, yellow, green, blue, purple, pink, gray
  • 背景色:red_background, gray_background など(色名 + _background
  • 装飾:bold, italic, underline, strikethrough , c

ボードビューで見やすく整理

データベースができたら、ビューを「ボード」に変更して状態別に分けると見やすくなります。

設定のポイント

  • グループ化:状態
  • カードに表示:月額、更新サイクル、更新まで

ボードビューにすると、サブスクと固定費が分かれて表示されるので、「オンオフできるもの」と「ずっとかかるもの」が一目で区別できます。

月額換算

私は月額換算のプロパティを作って、ボードビューではこちらを表示させています。


サブスクと固定費の分け方

状態定義
サブスク必要なときにオンオフできるAmazon Prime、Netflix、ChatGPT
固定費基本的にずっとかかる通信費、保険、NISA
解約過去に使っていたもの解約済みサービス

固定費は「解約する予定がないもの」という感じですね。NISAや通信費は毎月かかるものとして把握しておきたいので、サブスクとは別にしています。

おわりに

Notionでサブスク管理を作る方法を紹介しました。

ポイントは「次回更新日の自動計算」と「あと○日の色分け表示」。この2つがあるだけで、更新日を忘れて無駄な課金をすることがなくなります。

私はこの方法で15件ほどのサブスク・固定費を管理しています。年払いのサービスも更新日が近づくと気づけるので、「継続するか見直すか」を考えるきっかけになります。

さらに発展させると、カテゴリ別の集計やダッシュボード化もできますが、それはまた別の機会に。まずはシンプルに「次回更新日がわかる」状態を作るのがおすすめです。

ちなみに私は、更新日が近づいたら自動でTodoistにタスク登録されるようにしています。Makeを使えば、Notionを開かなくても自動で次回更新日を計算して、リマインダーを飛ばしてくれるので便利です。こちらも別記事で紹介予定です。

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

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