12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power Apps で、GroupBy 関数を利用して合計値を計算する

Last updated at Posted at 2023-06-08

はじめに

例えば、以下のような SharePoint リストで何かしらの管理をしているケースにおいて、Power Apps で、種類2ごとの合計値を計算して表示したいようなケースがあります。

image.png

Power Apps 側では、以下のように、コンボボックスで種類1をフィルターし、種類2ごとの合計値を表示するイメージです。

image.png

このように、アプリ側で合計した値を表示したいといったニーズもあると思うので、こちらの実装について説明します。

実装

コンボボックスを配置し、[Items]プロパティに、SharePoint リストの選択肢の情報を入れます。今回は、フォームコントロールから流用し、Choices([@契約].種類1)を入れます。

ギャラリーのフィルターは、以下の記事も参考にしてください。

[OnChange]プロパティの式は以下のような感じです。

ClearCollect(
    colTempContract,
    ForAll(
        Filter(
            契約,
            Type.Value = ComboBox1.Selected.Value
        ),
        {
            Type2: Type2.Value,
            Quantity: Number
        }
    )
);
ClearCollect(
    colContract,
    ForAll(
        GroupBy(
            colTempContract,
            "Type2",
            "GroupedResults"
        ),
        {
            Type2: Type2,
            Total: Sum(
                GroupedResults,
                'Quantity'
            )
        }
    )
)

少し長いですが、GroupBy を利用するところがポイントになります。こちらについては、以下のページも参考にしていただけたらと思います。最初はピンとこない人もいると思いますが、こういったシナリオがあった際にもしかしたら利用するかも、みたいな感じで思い出していただけたらと思います。

今回のケースですと、一旦、colTempContractは以下のようになります。ここから、Type2 をベースにグループ化していく感じになります。

image.png

GroupBy 関数により、以下のような仮想的なテーブルが作成される感じです。

image.png

そして、ForAll で行ごとに処理していき、Sum 関数 (合計を出力する関数) で、今回は、GroupedResult がテーブルになるため、そのテーブルから、Quantity 列の情報で合計を出力する感じになります。具体的には、1 行目の処理、2 行目の処理で以下の合計値を計算しています。

image.png

結果として以下のようなテーブルが出来上がるため、こちらをギャラリーで表示しています。

image.png

そのため、ギャラリーの[Items]プロパティは、上記で作成した、colContractとします。

image.png

まとめ

今回は、契約関連の情報を集約する SharePoint リストを例に、Power Apps で、GroupBy 関数を利用して、契約種類ごとの合計値を計算する方法について説明しました。GroupBy 関数を利用することでアプリの利用者への情報の見せ方を工夫することが出来るため、参考にしていただけると幸いです。

12
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?