My External Storage

Nov 26, 2021 - 4 minute read - Comments - notion

[Notion] 完了ステータスのタスクの数を集計する(あるDBのSelectプロパティの特定値の数を集計する)

最近Notionを使い始めた。ステータスプロパティを追加した「タスク」DBでタスク管理をしている。
「Done」タスクの数を数えるには少し回り道が必要だったのでメモしておく。
なお、この記事は2021/11/26時点のNotionの機能をベースに記載されている。

TL;DR

  • Notionで「タスク」と「週報」のDBを作っている
    • 「タスク」にはSelect型の「ステータス」プロパティを作っている
  • 「週報」ページのRollupで「Doneステータスのタスク数」を計算できなかった
  • 「タスク」にprop("Status") == "Done"というFormula型のCheckedプロパティを作ってこれをRollupで集計するとできた

カスタマイズ結果

Notionでタスク管理

最近Notionでタスク管理を始めた。 フォーマットは次の記事の「タスク」と「週報レトロスペクティブ」の作り方とデータベースを参考にカスタマイズしている。

タスクにはこんな感じでSelectプロパティとしてステータスを用意している。

タスクのイメージ

タスクはDBのページとして登録しており、週報用のDBのページ多:多のリレーションを貼っている。
(同じタスクを数週間使いまわしていたりするので、多:多になっている)

週報のイメージ

Selectプロパティの特定ステータスの数はRollupでカウントできない

週末に「今週どれくらいタスクを消化できたか?」を計測するため、タスクのステータスが「Done」になっているタスクの数を数えたかった。 疑似SQL的に言うとこんな感じ。

SELECT COUNT(*)
FROM `タスク'`
WHERE `タスク`.`ステータス` = 'Done'
AND `タスク`.`Week` CONTAINS '調べたい週のページ'

Notionには関連DBの特定要素を集計するロールアップというプロパティがあるのでこれでできるかと思った。

しかし、次のようにロールアップを選択してもSelect型のプロパティの特定値をカウントすることはできないようだった。

RELATION All tasks
PROPERTY Status
CALCULATE ???

2021/11/26現在のロールアップでは次のような集計しかできないので、「Doneの数だけ数える」ができない。

  • Show original
  • Show unique values
  • Count all
  • Count values
  • Count unique values
  • Count empty
  • Count not empty
  • Percent empty
  • Percent not empty

タスク側で「Doneかどうか」をみるFomulaを作っておく

毎回Doneの数を数えたくなかったので、隠しプロパティを設定することで解決した。 Selectプロパティは集計できないようだったので、各タスク側にStatusプロパティがDoneだったらチェック状態になるFormulaプロパティを設定した。 設定内容は次の通り。

prop("Status") == "Done"

これを使えば、各タスクに「Status == Doneのときは自動でチェック状態」になるプロパティが設定できる。 このような隠しプロパティを用意して、あとは週報側でこのプロパティを集計するロールアップを設定すれば良い。

RELATION All tasks
PROPERTY done
CALCULATE checked

スクショは27タスクがこの週報に登録されていて、9タスクがDoneステータスになっている集計ができている状態。

カスタマイズ結果

終わりに

Doneの数は自動で集計できたが、これはリレーショナルな情報なので、未完のタスクが翌週Doneになると数字が更新されてしまう。 そうすると年末に振り返ったとき、すべての週で登録したタスクがすべてDoneステータスになりかねない。 なので、週末振り返るときに集計されたDoneの数を固定値として保存するプロパティも用意してある(ここはRollupの値を手動でコピペするしかない)。

プログラマとしてはNotionはノーコードでいろいろなデータの表現をリレーショナルにできるのでおもしろい。 あまりカスタマイズしすぎるとあとでメンテできなくなりそうだが、適度にカスタマイズして利用していきたい。

参考