下記ページを参照しながら、notionで進捗管理をする仕組みを作ってみました。
バージョンアップで変わっている箇所がありましたので、備忘録として記載します。
▼NotionでWBSを管理する
https://mebiusbox.github.io/blog/2023/01/17/notion-wbs
データベースの作成
まず、データベースを作ります。
プロパティは下記のとおり。
タイトル
/タイトル進捗(親)
/関数進捗(子)
/セレクト- 自動
- %で進捗をセレクトします
- 0%
- 25%
- 50%
- 75%
- 100%
- ※刻み具合はお好みで調整してください
ここまでつくったら、サブアイテムの設定をします。
データベースの設定(…ボタン)からカスタマイズ>サブアイテム>サブアイテムをオン、で有効化できます。
プロパティをさらに設定します。
_進捗N
/関数_進捗R
/ロールアップ- リレーションに
サブタスク
を設定 - プロパティに
_進捗N
を設定 - ※
計算
は、この時点ではオリジナルを表示
にしてください
- リレーションに
進捗(子)の値を集計して進捗(親)に反映する処理
_進捗N
は、進捗(子)
で選んだパーセンテージを数値に変換します。
まず、数値として扱うために、_進捗N
の関数を編集
で1
と入力します。
すると、数値の形式
と表示方法
を選択できるようになります。
数値の形式
:数値表示形式
:バー(元サイトではリング。どっちでも好きな方を)
_進捗N
が数値に設定されると、ロールアップしている_進捗R
の計算
(↑でオリジナルを表示
にしたところ)に項目が追加されるので、合計
を設定します。表示形式
は数値
にしておきます。
_進捗Nの関数
if(prop("進捗(子)") == "自動", floor(prop("_進捗R") / max(1, length(replaceAll(prop("サブアイテム") + ",", "[^,]", "")))), toNumber(substring(prop("進捗(子)"), 0, -1)))
元サイトから変えているのは後半のsubstring関数
です。
元サイトはslice(prop("進捗(子)"), 0, -1)
としているのですが、関数のアップデートで、slice関数は処理が変わりました。詳しくは下記参照。
▼関数2.0(Formulas 2.0)を徹底解説
https://temp.co.jp/blog/2023-09-10-formula20#関数名は同じで機能が変更された関数
進捗(親)の関数
if(length(prop("サブアイテム")) > 0, floor(prop("_進捗R") / max(1, length(replaceAll(prop("サブアイテム") + ",", "[^,]", "")))), prop("_進捗N")) / 100
完成
_進捗N
, _進捗R
は非表示にして、見た目を整えたら完成です。
使い方としては、親アイテムの進捗(子)
は自動
に設定。
子アイテムの進捗(子)を設定してやると、親の進捗を計算して出してくれます。