逆引きFormula 2.0 に戻る

Formula 1.0 の時代にはほとんどの集計作業は、ロールアップでしか行えませんでした。Formula 2.0 ではロールアップの機能は、ほぼ Formula で実現できます。以前書いていたロールアップでの実現方法は下に残しておきますので、違いを見てください。

データはそのまま使えるので、テストカテゴリ、テストアイテムはそのまま使います。Formula の結果が正しく計算できているのかを確認するために、ロールアップのものと比較してみましょう。map 関数を使うことで、リレーション先のページ内の価格のリストを直接取得できます。それを最後に sum することでカテゴリごとの集計ができます。

prop("テストアイテム一覧").map(current.prop("価格"))
 .sum()

mapsum

また、ロールアップでは難しかった条件での集計もできるようになります。ここでは、完了にチェックが入ったものだけの価格を合計してみます。

prop("テストアイテム一覧").filter(current.prop("完了"))
 .map(currentValue.prop("価格"))
 .sum()

filtermapsum

無題のデータベース


<aside> 💡 ここからは Formula 1.0 の時のロールアップの時の説明でした。参考までに残しておきます。

</aside>

カテゴリごとに集計するにはどうすればよいかという質問がありました。今回は、Formula ではないのですが、似たようなものということでここに追加します。実際、普通の Excel のような集計はできませんが、データベースとしてロールアップで集計することはできますので、そのやり方を説明してみます。

  1. カテゴリのデータベースを作ります。

    テストカテゴリ

  2. アイテムのデータベースを作ります。リレーションで先ほどのテストカテゴリを関連させます。

    テストアイテム

  3. テストカテゴリにロールアップを追加します。ロールアップは下のような感じで設定しました。さらに、一番下の集計で全部のカテゴリの合計も出しています。ただ、ここは数式の書式は設定できないですね。上と同じテーブルですが、見た目を変えたいので、ここでは Linked Database として表示しています。

    Untitled

    テストカテゴリ