Notionで「締切まであと何日」を表示する関数
締切や予定日が近づいているかを、Notionが自動で教えてくれたら便利です。関数を1つ足すだけで、「あと3日」「本日」「2日経過」のように、残り日数を表示できます。この記事では、いちばんシンプルな式から、状態で出し分ける実用的な式まで紹介します。
前提として、日付を入れる日付プロパティ(ここでは 締切 とします)があるものとします。
いちばんシンプルな式:残り日数
関数プロパティを追加し、次の式を入れます。
dateBetween(prop("締切"), now(), "days")
dateBetween(A, B, 単位) は、2つの日付の差を返します。now() は今日なので、これで「締切と今日の差(日数)」が出ます。正の数なら残り日数、負の数なら過ぎた日数です。
これだけでも十分使えますが、数字だけだと「3」が残りなのか経過なのか分かりにくい。そこで、次の式で言葉にします。
実用版:「あと◯日/本日/◯日経過」で出し分ける
関数プロパティに、次を貼り付けます(締切 の部分は自分のプロパティ名に合わせてください)。
if(
dateBetween(prop("締切"), now(), "days") > 0,
"あと" + format(dateBetween(prop("締切"), now(), "days")) + "日",
if(
dateBetween(prop("締切"), now(), "days") == 0,
"本日",
format(abs(dateBetween(prop("締切"), now(), "days"))) + "日経過"
)
)
読み解くとこうです。
- 残り日数が 0より大きい →
"あと" + 日数 + "日" - そうでなく ちょうど0 →
"本日" - それ以外(マイナス)→
絶対値 + "日経過"
ここで出てくる関数:
format(...)は数値を文字に変換します。文字と数値を+でつなぐには、数値をformatで文字にする必要があります。abs(...)は絶対値(マイナスを取り除く)です。経過日数を「-2」でなく「2」で見せるために使います。
色や絵文字で目立たせる
締切が近いものを視覚的に強調したいなら、絵文字を混ぜます。
if(dateBetween(prop("締切"), now(), "days") < 0, "🔴 期限切れ",
if(dateBetween(prop("締切"), now(), "days") <= 3, "🟡 まもなく", "🟢 余裕あり"))
3日以内で黄色、過ぎたら赤、それ以外は緑。ボードビューやテーブルで一覧すると、対応すべきものがひと目で分かります。
うまくいかないとき
- 赤いエラーになる:
prop("締切")のプロパティ名が実際の名前と完全一致しているか確認。大文字・小文字・スペースまで一致が必要です。 - 数字と文字をつなげない: 数値はそのままでは文字と
+できません。format()で囲みます。 - 日付が空の行でエラーっぽくなる: 日付未入力の行は差が計算できません。気になる場合は、先頭で
if(empty(prop("締切")), "未設定", 〜)のように空判定を足します。
関数の基本がまだ不安なら、先にNotionの関数(数式)の使い方を読むと、上の式がすっきり理解できます。締切管理を仕組み化したいなら、NotionでCRMを作る手順の考え方も応用できます。