![Power Query での列/行の管理](https://rvso.com/image/1672301/Power%20Query%20%E3%81%A7%E3%81%AE%E5%88%97%2F%E8%A1%8C%E3%81%AE%E7%AE%A1%E7%90%86.png)
大量のデータが入った .txt ファイルがあります。これを次のように Power Query に読み込みます:
[文字 (A) を 1 列幅の 1 行のデータに相当させます]
ABCD
E A
B E A E A B C D E
等々...
これを行と列に整理すると次のようになります。
AAAAA
BBEB
CE x C
D xx D
E xx E
値「A」を区切り文字として使用して、新しい列への分離を決定します。また、関連する場合、最後の値は常に同じになります (上記の「E」)。
これは可能ですか?
答え1
概念的には単純ですが、最後のステップでは詳細エディタを使用する必要があります。
- 「A」から始まる各グループに同じ番号を持つ列を作成します。
- インデックス列を追加する
Grouper
数式を使用してカスタム列(名前付き)を追加するif [Column1]="A" then [Index] else null
- 下へ記入
Grouper
- Group on Grouper
- 「すべての行」を集計する
- 各サブテーブル列の値をリストとして抽出する別のカスタム列を追加します1
Table.FromColumns
これらのリストを使用して関数を使用して新しいテーブルを作成します
let
//Change next line to reflect actual data source
Source = Excel.CurrentWorkbook(){[Name="Table26"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
#"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1, Int64.Type),
#"Added Custom" = Table.AddColumn(#"Added Index", "Grouper", each if [Column1]="A" then [Index] else null),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Index"}),
#"Filled Down" = Table.FillDown(#"Removed Columns",{"Grouper"}),
#"Grouped Rows" = Table.Group(#"Filled Down", {"Grouper"}, {{"Count", each _, type table [Column1=nullable text, Grouper=number]}}),
#"Removed Columns1" = Table.RemoveColumns(#"Grouped Rows",{"Grouper"}),
#"Added Custom1" = Table.AddColumn(#"Removed Columns1", "Columns", each [Count][Column1]),
#"Removed Columns2" = Table.RemoveColumns(#"Added Custom1",{"Count"}),
#"New Table" = Table.FromColumns(#"Removed Columns2"[Columns])
in
#"New Table"