コンテンツまでスキップ

Notionのデータベースで期限が近づいているものをパッとわかるように見せる

はじめに

ネクストモードの南です。

Notionのデータベースでは関数を使うことができますが、数値やテキストだけでなく日付も処理することができます。
今回は実際に社内であった、日付を関数で処理させた事例について紹介させていただきます。

経緯

ネクストモードでは社内の案件管理用として、以下のような形でNotionのデータベースを活用しています。
担当者やステータスなどをプロパティ(列)で設定し、一覧化して社内で共有している感じですね。

案件管理DB

こちらのデータベースには「契約終了日」という日付のプロパティがあるのですが、社内のメンバーより「契約終了日が近づいている案件がパッとわかるようになるといいよね」とコメントをもらいました。

オンライン会議

やったこと

こちらはコメントを受けての改善版となりますが、プロパティを追加して、契約期限が近づいている(30日以内)案件については残り日数を表示させるようにしています。

案件管理DB_after

こちらのプロパティの種類は関数となっていて、以下の計算式で残り日数の計算と表示の判定を行っています。

手順

ここからは追加したプロパティの設定手順を紹介していきます。

データベースの[+]をクリックして、新規プロパティの画面を開きます。
プロパティは[関数]を選択します

手順1

プロパティ名は任意の名称を入力してください。今回は「契約終了までの期間」としています。
[編集]をクリックして関数の入力画面を開きます。

手順2

数式の入力フィールドに以下の関数を入力して、[完了]をクリックします。

手順3

上の関数では参照するプロパティを"契約終了日""ステータス"としていますが、こちらは実際のデータベースのプロパティ名に合わせて変更してください。

これで契約終了日が近づいている案件について、残り日数を表示できるようになりました。

案件管理DB_after

関数の解説

やや込み入っているので、関数の要素を分解して解説していきます。
こちらは上で入力した関数の抜粋版です。

notion_formula

①のブロックでは"契約終了日"のプロパティと現在の日時との間隔を計算して、30日以下になるかを判定しています。
dateBetweenは以下の構文で、date1date2の日付の間隔(時間)を返します。textでは時間の単位を指定します。(years、quarters、months、weeks、days、hours、minutes、seconds、millisecondsのいずれかで指定)

  • dateBetween(date1, date2, text)

また、now()は現在の日時を返します。
今回はdateBetween"契約終了日"と現在の日時の間隔を計算し、日付で返している形になります。
さらに、契約終了日を含めたいので+ 1を加え、<= 30で30日以下になるかを判定している、という条件式となります。

②のブロックではdateBetweenの結果をformatで文字列に変換し、+演算子で前後に文字列をつなげています。

また、①、②、③はそれぞれif文の要素となっており、①は判定式、②は①がtrueだった場合の表示、③はfalseだったときの表示(""なので何も表示しない)、という計算式となります。

抜粋版の関数でも機能しますが、これだと"ステータス""Done"となっている過去の案件なども関数の結果が表示されてしまいます。
ちょっと見栄えがよくないですね。

案件管理DB_after2

手順の方で入力した関数は"ステータス"のプロパティをif文の判定式で評価しており、"ステータス""In progress"のデータだけ結果を表示させるようにしています。
(長くて見にくいですが、やっていることはifを追加しただけ、となります。)

まとめ

Notionの関数はなかなか取っつきにくい部分もありますが、入力補助機能もよくできているので、慣れてくるとすんなり書くことができます。
関数が使えると工夫次第で色々なことを実現できるようになるので、ぜひ活用していただければと思います。
今後も役に立ちそうなナレッジが見つかったら公開していきたいと思います。

Notionについてのお問い合わせ

ネクストモード社は、日本で3社しかないNotion販売代理店です。(2023年01月01日現在)
Notion導入を検討の際は是非下記からお問い合わせ頂けますと幸いです。

SaaS_LP