HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📌
hkob's Notion
/
ℹ️
逆引きFormula 2.0
/
💾
Database storage
/
🔗
カテゴリごとに集計するには? (Formula 2.0)
🔗

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

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

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