サブスク、気づいたら増えていませんか?
Amazon Prime、Netflix、ChatGPT、YouTube…便利なサービスが多すぎて、私も「今いくつ契約してるんだっけ?毎月いくら払ってるんだろう?」状態になっていました。しかも年払いのサービスは更新日を忘れがち。気づいたら引き落とされていた、なんてことも。
そこでNotionでサブスク管理を作ってみました。ポイントは次回更新日を自動計算させること。登録日と更新サイクル(月払い/年払い)を入れるだけで、次の更新日が勝手に出るようにしています。さらに「あと○日」の表示も色分けして、更新が近づいたら気づけるようにしました。
完成イメージ

私はボードビューで「サブスク」「固定費」「解約」に分けて管理しています。
サブスクの下に支払いサイクル、金額(月額換算)、「あと○日」が表示されていて、更新が近いものは一目でわかります。
データベースの構成
まずは必要な列を作ります。主な内容は以下の通り。
| プロパティ名 | 種類 | 説明 |
|---|---|---|
| 名前 | タイトル | サービスの名前 |
| 状態 | リレーション | サブスク / 固定費 / 解約 |
| 単位 | セレクト | 月 / 年 |
| 期間 | 数値 | 更新サイクルの数字(1、3、12など) |
| 金額 | 数値 | 月額または年額 |
| 更新日 | 日付 | 最初に契約した日(課金開始日) |
| 集計対象 | 数式 | 解約済みを除外するためのフラグ |
| 次回更新日 | 数式 | 自動計算(後述) |
| 更新まで | 数式 | 自動計算(後述) |
| 月額 | 数式 | 自動計算 |
「更新日」は最初に契約した日や最後に課金された日を入れます。無料お試し期間があるサービスなら、課金が始まる日を入れておくのがおすすめです。未来日でも過去日でもOKにしました。
「集計対象」は解約済みを除外するためのフラグです。オフになると、「あと○日」表示がなくなります。
チェック漏れを防ぐため数式にしていて、「状態」の値が「解約」以外の時にチェックが入るようにしています。
ifではうまくいかなかったのでnotとtestを組み合わせて判定式を作りました。
構文not()test(text,pattern)
not( test (prop("状態"),"解約"))「状態」は別のデータベースを作ってリレーションしていますが、セレクトやステータスでもいいと思います!
次回更新日を自動計算する数式

ここがメインです。年払いでも月払いでも、登録日から自動で次の更新日を出せるようにします。
lets関数を使って計算に必要な変数を先に定義しました。
考え方
- 「期間」と「単位」から、何ヶ月ごとの更新かを計算
- 登録日から今日までに何サイクル経過したかを計算
- 次のサイクルの日付を出力
年払いの場合は「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を開かなくても自動で次回更新日を計算して、リマインダーを飛ばしてくれるので便利です。こちらも別記事で紹介予定です。
なにかの参考になれば嬉しいです!

