NotionでWBSを管理する
Notionのサブアイテム機能を使うことで単一のデータベースのみでWBS(Work Breakdown Structure)を構築できます. ここでは、次のようなWBSの構築方法を解説します.
ここでは、英語版Notionで解説しています.また、CSSで見た目をカスタマイズしているものをスクショしています.ご了承ください.
データベースの作成
まず、データベースを作成します.プロパティは次のようにします:
- Task: タイトル(Title)
- 進捗(子): セレクト(Select)
- 進捗(親): 関数(Formula)
進捗(子)のセレクト項目は次のようにしました.
0%
..100%
(10%刻み)自動
進捗(親)の関数は後で解説します.
この時点で次のようなプロパティ構成になっています.
サブアイテムの設定
データベースの設定(・・・
ボタン)からサブアイテム(Sub-items
)の設定を選択します.
設定はデフォルトのままで問題ありません.
次のようなプロパティの構成になっているはずです.
進捗率の計算
子の進捗率を計算して親の進捗率として表示します.そのためにプロパティを2つ作成します.
1つは_進捗N
で関数(Formula)タイプです.先頭の_
は計算用を表しています.もう1つは_進捗R
とします.こちらはロールアップ(Rollup)で、リレーション(Relation)にSub-item
を設定します.
次にプロパティ(Property)に_進捗N
を設定します.
計算(Calculate)はオリジナルを表示(Show original)
に設定しておきます.
この時点で、プロパティは次のようになっています.
適当にタスクを追加して、タスクの親子関係を設定します.ここで重要なのは、子を持つ親タスクの進捗(子)は自動
に設定しておいてください.
子タスクの進捗率
_進捗N
は子タスクの進捗(子)のセレクト値を数値に変換します.まず、_進捗N
を数値として扱いたいので、関数(Formula)で1
と設定します.
これで、このプロパティが数値として扱われます.数値として扱われると、関数プロパティのオプションに数値の形式(Number format)
と表示形式(Show as)
が追加されます.
数値の形式(Number format)を数値(Number)
にし、表示形式(Show as)をリング(Ring)
に設定します.
次に、_進捗N
を数値に設定すると、そのプロパティをロールアップしている_進捗R
の計算(Calculate)に項目が追加されますので、合計(Sum)
を設定します.そうすると、表示形式(Show as)
が選べるようになりますが数値(Number)
のままにしておきます.
これで、_進捗N
と_進捗R
がともに数値となりました.次に_進捗N
の関数を設定します.関数は次の通りです.
if(prop("進捗(子)") == "自動", floor(prop("_進捗R") / max(1, length(replaceAll(prop("Sub-item") + ",", "[^,]", "")))), toNumber(slice(prop("進捗(子)"), 0, -1)))
何をやっているかを説明すると、そのタスクが親タスク(進捗(子)で自動
を設定しているタスク)であれば、_進捗R
(そのタスクの子タスクすべての進捗率の合計)から子タスクの数で割って進捗率を計算しています.また、子タスクであれば、進捗(子)のセレクト値を数値に変換しています.
親タスクの進捗率
あとは、進捗(親)の計算で進捗率を計算します.