Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Power Query - преобразовать строки в столбец через разделитель
 
Всем добрый день!

Суть задачи в следующем: есть таблица из трех столбцов - надо сгруппировать данные по первым двум столбцам, а значения из третьего столбца записать через разделитель (например, "/"). По сути, мне нужна операция обратная "Разделить столбец на Строки".
Собственно, вопрос - реализуемо ли это в Power Query и если да, то как?

Спасибо
 
Ловите:
 
alexleoix, спасибо! то что надо :)
 
Можно чуть по-короче, но принцип тот же.
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Сотрудник", type text}, {"Подразделение", type text}, {"Доступ", type text}}),
    #"Сгруппированные строки" = Table.Group(#"Измененный тип", {"Сотрудник", "Подразделение"}, {{"Список", each Text.Combine( _[Доступ], "/" ), type text}})
in
    #"Сгруппированные строки"
 
PooHkrd, спасибо - пока это выше моего понимания, т.к. я только начинаю изучать PQ и даже не очень представляю, где этот запрос должен быть...
Хотя нашел - сейчас тоже буду смотреть

alexleoix, а можете уточнить один момент - при добавлении пользовательского столбца Доступ формула Table.ToList(Table.SelectColumns([Группировка],"Доступ")) вводится руками или ее можно как-то выбрать?
 
Поддерживаю вопрос) Но что-то мне подсказывает, что вручную
 
webley, к сожалению, пока руками (Версия: 32-разрядная версия 2.55.5010.1402; EXCEL 2013)
 
ну руками так руками... буду изучать синтаксис
Еще раз всем спасибо!  
 
webley, на самом деле тут не сложно, главное понимать некоторые нюансы функции Table.Group()
Если в кнопочном режиме выбрать группировку с выводом всех строк то строка 4 в моем запросе будет выглядеть вот так:
Код
#"Сгруппированные строки" = Table.Group(#"Измененный тип", {"Сотрудник", "Подразделение"}, {{"Список",_ , type table}})

Здесь знак _ это итератор под которым скрываются строки исходной таблицами отфильтрованные функцией Table.Group()
Далее если знать синтаксис обращения к данным, то можно обратиться к конкретному столбцу данной таблицы написав:
Код
_[Доступ] 

результатом такой записи будет список значений из столбца Доступ
Ну а раз мы получили список, то сразу же к нему можно применить функцию
Код
Text.Combine( _[Доступ], "/" )

не забыв при этом указать у выводимого в столбец результата type text
Если что, то все эти откровения мне открыли АндрейVG и Максим Зеленский вот в этой теме, там то же самое но на другом примере чуть подробнее. Вообще использование Table.Group() в качестве фильтра открыло для меня много новых граней в PQ, а когда чуть-чуть разобрался как работать со списками так там такое началось!
Изменено: PooHkrd - 1 Июн 2018 15:12:30
 
PooHkrd, повторюсь - я только в начале пути изучения PQ   ;)  Сейчас я понял, что запросы надо писать руками - кнопками не обойтись, а учиться лучше на небольших блоках которые проще понять (как в примере alexleoix), ну а оптимизация и совершенствование - это уже следующий этап  :)
За ссылку отдельное спасибо - на досуге почитаю.
Страницы: 1
Читают тему (гостей: 1)