🔗

カテゴリごとに集計するには? (Formula 2.0)

Status
Update by 2.0
属性名
カテゴリ集計(Formula)、完了のみ集計(Formula)
返り値
Integer
Float
逆引きNotionDB
関連するもの
Formula 1.0 の時代にはほとんどの集計作業は、ロールアップでしか行えませんでした。Formula 2.0 ではロールアップの機能は、ほぼ Formula で実現できます。以前書いていたロールアップでの実現方法は下に残しておきますので、違いを見てください。
 
データはそのまま使えるので、テストカテゴリ、テストアイテムはそのまま使います。Formula の結果が正しく計算できているのかを確認するために、ロールアップのものと比較してみましょう。map 関数を使うことで、リレーション先のページ内の価格のリストを直接取得できます。それを最後に sum することでカテゴリごとの集計ができます。
prop("テストアイテム一覧").map(current.prop("価格")) .sum()
また、ロールアップでは難しかった条件での集計もできるようになります。ここでは、完了にチェックが入ったものだけの価格を合計してみます。
prop("テストアイテム一覧").filter(current.prop("完了")) .map(currentValue.prop("価格")) .sum()
テストカテゴリ
名前
カテゴリ集計(Rollup)
カテゴリ集計(Formula)
完了のみ集計(Formula)

💡
ここからは Formula 1.0 の時のロールアップの時の説明でした。参考までに残しておきます。
カテゴリごとに集計するにはどうすればよいかという質問がありました。今回は、Formula ではないのですが、似たようなものということでここに追加します。実際、普通の Excel のような集計はできませんが、データベースとしてロールアップで集計することはできますので、そのやり方を説明してみます。
 
  1. カテゴリのデータベースを作ります。
    1. テストカテゴリ
  1. アイテムのデータベースを作ります。リレーションで先ほどのテストカテゴリを関連させます。
    1. テストアイテム
      名前
      価格
      カテゴリ
      完了
  1. テストカテゴリにロールアップを追加します。ロールアップは下のような感じで設定しました。さらに、一番下の集計で全部のカテゴリの合計も出しています。ただ、ここは数式の書式は設定できないですね。上と同じテーブルですが、見た目を変えたいので、ここでは Linked Database として表示しています。
    1. notion imagenotion image
      テストカテゴリ
      名前
      カテゴリ集計(Rollup)