[小ネタ] Notion のチャート機能でロールアップを使う方法
こんにちは、中川です。
先日アップデートされた Notion のチャート機能を使ってますでしょうか?
チャート機能は Notion DB 上のデータを棒グラフやドーナツグラフで可視化できる機能です。
チャート機能については、以下のブログで紹介されていますので、詳細はこちらをご覧ください。
早速本機能を試してみたところ複数の DB を組み合わせて利用しているときにチャート機能で可視化できないケースを確認しました。
本記事ではチャートで可視化できないケースと回避策について紹介します。
3行まとめ
- ロールアップしたプロパティはチャートで使用できない
- 数式プロパティで作られたロールアップはチャートで使用できる
- リレーションを結んでいない DB も数式プロパティを使えばチャートで使用できる
困っていたこと
タスクを管理する DB「タスク」と DB「グループ」でリレーションを結び、DB「タスク」に DB「グループ」のプロパティ「カテゴリー」をロールアップしているとします。
この DB「タスク」でチャート機能を使うと、プロパティ「完了日時」ごとにプロパティ「稼働時間」を集計することができます。
これだと日々の内訳がわからないので、プロパティ「カテゴリー(ロールアップ)」でグループ化したいです。
そこで、チャートのメニューからグループを選択したところ、「カテゴリー(ロールアップ)」が表示されず、グループ化できませんでした。
解決方法
結論:数式プロパティを使うことでロールアップをチャートで使えます。
DB「タスク」に以下のように数式プロパティ「カテゴリー(数式)」で数式を追加します。first()
はリストの最初を返す関数でここでは、「グループ(リレーション)」を返しています。(1 つしかないので first でなくても取得できます)
するとプロパティ「カテゴリー(数式)」で DB「グループ」のカテゴリーを表示できます。
先程のチャートに戻り、グループの選択画面に行くと、「カテゴリー(数式)」を選択できるようになっています。
選択すると期待通り可視化できることを確認できました。
グループではなくデータとして使えることも確認します。
チャートの種類でドーナツグラフを選択して、データで「カテゴリー(数式)」を選択、表示する値で「稼働時間の合計」を選択します。
すると「カテゴリー(数式)」をデータとして使え、カテゴリーごと稼働割合を表示できました。
ロールアップのロールアップ
数式を応用することで直接リレーションを結んでいない DB をロールアップしてチャートで可視化することもできます。
以下のように DB「グループ」とリレーションを結ぶ DB「顧客」があるとします。
DB「タスク」と DB「顧客」の間でリレーションはありません。この状態で、DB「顧客」のプロパティ「契約プラン」ごとに対してどれで稼働が発生しているか可視化してみます。
先ほどと同じように DB「タスク」に数式プロパティ「プラン(数式)」を追加します。プロパティ「顧客」を取得した後に更に DB「顧客」からプロパティ「契約プラン」を引っ張るようにしています。
DB「タスク」でプロパティ「契約プラン」の内容が表示されるようになりました。
これを使って可視化していきます。先程のドーナツグラフのチャートのメニューからデータを選択すると「プラン(数式)」を選択できるようになっています。
「プラン(数式)」を選択することで、契約プランに対応した稼働時間を表示することができました。
さいごに
Notion のチャート機能でロールアップを使う方法を紹介しました。
数式を使うことで直接リレーションをもっていない DB の可視化もできるようになります。
期待通りチャートで可視化できないときには数式を使えないか検討してみてください。