【Power Query】グループごとに連番をつける方法

【Power Query】グループごとに連番をつける方法 | Tableau-id Press -タブロイド-
power bi

Power Queryで連番(インデックス)を振る方法をご紹介したいと思います。

Power Queryには「インデックス列」という機能があり、全レコードに通し番号を振ることが簡単にできるのですが、グループごとに連番をつけたい場合は1ステップ加える必要があります。
今回は「全レコードに連番を振る」と「グループごとに連番を振る」の2点をやってみたいと思います。


今回使用するデータ
都道府県と属する地域が入ったデータです。

 

1.全レコードに連番を振る方法
単純に、全都道府県に連番を振ってみます。

列の追加>インデックス列を選択
インデックスの開始が「0から」「1から」「カスタム」から選択できます。
今回は1から連番を振りたいので1からにします。

簡単にできました!

今回は使いませんでしたが、カスタムにするとインデックスの開始と増分の両方を指定できます。

 

2.グループごとに連番を振る方法
次に、地域ごとに連番を振ってみたいと思います。
北海道地方は1、東北地方は全て2という感じにしたいです。

変換>グループ化を選択します。

グループ化ウィンドウが開くので設定をします。

①グループ化したい列
地方区分を指定します。
②新しい列名
グループ化した値を入れる列の名称を指定します。
今回は何でもよいので「TEMP」とつけておきます。
③操作
グループ化した値の処理を指定します。
今回は都道府県をそのまま残したいので「すべての行」を指定します。

次のような形になりました。都道府県は地方ごとにテーブルとして保持されています。

この状態で、列の追加>インデックス列 を使い連番を振ります。

地域ごとに連番が振られました。

テーブルに格納されている都道府県を行に展開します。
TEMP列の矢印アイコンを押します。

①展開/集計
今回は行に展開したいので「展開」をONにします。
②列の選択
展開対象の列を指定します。都道府県を選択します。
③元の列名をプレフィックスとして使用するか
ONにすると展開後の列名の接頭語に元の列名がつき、「TEMP.都道府県」のようになります。
今回は不要のためチェックをOFFにします。

このような形になり、地方ごとに連番が振られたデータができあがりました!


【まとめ】
全レコードに連番を振りたい場合は「インデックス列」
グループごとに連番を振りたい場合は「グループ化」と「インデックス列」の合わせ技
で行う。