タグ別アーカイブ: List.FirstN

【M言語実践】グループ別に累計を集計する方法

過去2回の記事でM言語を実践的に活用する事例を紹介しました

この2回の記事で共通するのは「グループ毎に連番を付与」する技術を使用していることです

今回も「グループ毎に連番を付与」する技術を有効活用して、グループ毎に累計を集計します

M関数のList.FirstNと連番をうまく組み合わせれば、意外と簡単に行えます

ポイント

List.FirstNとは?

List.FirstNは指定されたリストから、指定した条件のリストを作成します

文法としては「=List.FirstN(リスト,条件)」と書きます

例えば、

=List.FirstN(リスト,1)とした場合は1個の値が含まれるリストを作成します

=List.FirstN(リスト,2)とした場合は2個の値が含まれるリストを作成します

このList.FirstN関数の第二引数の条件のところに、グループ別の連番を指定することで、累計の元となるリストを作成します

元データ

今回解説に使用する元データは、下の画像のデータです

こちらのデータのグループに、エディタ内で連番をまずは付与します

上記の画像のようにM関数/Table.AddIndexColumnの第一引数にした列/テーブルは、後でList.FirstN関数の第一引数にしますので削除せずに残しておいてください

List.FirstNによるリスト作成

元データに連番を付与したところで、Power Queryエディタ(以降、エディタ)上で、詳細/テーブルの受注金額をM関数の第一引数、連番を第二引数にしてカスタマイズ列を作成してみます

するときちんとリストが作成できています

では、作成されたリストの中味を見てみます

連番(東京)が1の時には、作成した行の値のみが含まれています

では、連番(東京)が2の時はどうでしょう?

1つ上の行の値と該当行の値がリストに含まれています

今度は、大阪の連番1の場合を見てみましょう!

きちんと大阪の1番目の値/1700000のみが含まれています

作成されたリストの合計

List.FirstNにて各行に作成されたリストは累計の元になるリストになります

最後の仕上げとして、こちらのリストをM関数/List.Sumで合計します

すると、下の画像のように累計が算出されます

<まとめ>

 今回は、M関数/List.FirstNとグループ別の連番を組み合わせて、グループ別の累計を集計しました

今回の集計には、行別のリストが度々登場します

画像に alt 属性が指定されていません。ファイル名: image-74.png

この辺りは、手を動かして直感的に理解していった方が習得が早いと思います

とにかく手を動かして身に付けていきましょう!
にほんブログ村