指定列でグループ分けして番号を振りたい時。
Excelの数式だったら「=COUNTIF(A$2:A2,A2)」を下にコピーする形でグループ連番列を作るだろうと思う。クエリでは「行のグループ化」と「インデックス列の追加」を使えば同じことができる。
事前に画像のような「エリア」列と「都道府県名」列を持つテーブルを「テーブル1」として読み込んでいるものとする。
「エリア」列の見出しを右クリックして「グループ化」
新しい列名「テーブル」・操作「すべての行」・列は空欄のままで[OK]
すると数式バーに下のような記述が表示されるはず。
= Table.Group(テーブル1, {"エリア"}, {{"テーブル", each _, type table [エリア=nullable text, 都道府県名=nullable text]}})
数式の中の「_」を「Table.AddIndexColumn(_, "連番", 1, 1)」とすれば、いちいち列を追加しなくても「インデックス列の追加」もグループ化に組み込むことができる。
= Table.Group(テーブル1, {"エリア"}, {{"テーブル", each Table.AddIndexColumn(_, "連番", 1, 1), type table [エリア=nullable text, 都道府県名=nullable text, 連番=Int64.Type]}})
ついでに列のデータ型も指定し直しておいた。
後は「テーブル」列から「都道府県名」と「連番」列を展開するだけ。
「表示させたい列」と「連番列」にだけチェックを入れる。 [元の列名をプレフィックスとして使用します]のチェックは外す。 →[OK]
これで完了。読み込めばおしまい。
もっとも慣れている人は「行のグループ化→インデックス列の追加→列の展開」でやったほうが楽だと思う。
ないと思うけど、もし「そうじゃなくて、こうしたいんだよね」という場合は、普通にグループ化して連番列を追加してから展開すればいい。
行のグループ化 = Table.Group(テーブル, {"エリア"}, {
"テーブル", each _,
type table [エリア=Text.Type, 都道府県名=Text.Type]
}),
連番列の追加 = Table.AddIndexColumn(
行のグループ化, "連番", 1, 1, Int64.Type
),
テーブル列の展開 = Table.ExpandTableColumn(
連番列の追加, "テーブル", {"都道府県名"}
)