過去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とグループ別の連番を組み合わせて、グループ別の累計を集計しました
今回の集計には、行別のリストが度々登場します
この辺りは、手を動かして直感的に理解していった方が習得が早いと思います
とにかく手を動かして身に付けていきましょう!
にほんブログ村
コメントを残す