![Управление столбцами/строками в Power Query](https://rvso.com/image/1672301/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D1%86%D0%B0%D0%BC%D0%B8%2F%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0%D0%BC%D0%B8%20%D0%B2%20Power%20Query.png)
У меня есть файл .txt с кучей данных. Я загрузил его в Power Query следующим образом:
[пусть буква (A) будет равна строке данных шириной в один столбец]
А
Б
В Г
Д А Б Е А Е А Б В Г Д
и так далее...
Я хотел бы организовать его в строки и столбцы так, чтобы теперь он выглядел так:
AAAA
BBEB
CE x C
D xx D
E xx E
используя значение "A" в качестве разделителя для определения разделения в новый столбец. Кроме того, последнее значение всегда будет тем же самым ("E" выше), если это имеет значение.
Это возможно?
решение1
Концептуально просто, но требует использования расширенного редактора на последнем этапе.
- Создайте столбец с одинаковым номером для каждой группы, начиная с «А».
- Добавить столбец индекса
- Добавить пользовательский столбец (с именем
Grouper
) с формулойif [Column1]="A" then [Index] else null
- Заполнить вниз
Grouper
- Группа на 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"