let
Source = Excel.CurrentWorkbook(){[Name="Таблица4"]}[Content],
// Группируем по Число и Коду и AllRows по значению
GroupedRows = Table.Group(Source, {"Число", "Код"}, {{"Count", each _, type table}}),
// добавляем внутри таблиц колонки Count Индекс от 0. Он нам понадобиться для создания динамичного листа названия колонок,
// а также для шага PivotedColumn
AddedCustom = Table.AddColumn(GroupedRows, "Custom", each Table.AddIndexColumn([Count], "Index", 0, 1)),
RemovedColumns = Table.RemoveColumns(AddedCustom,{"Count"}),
ExpandedCustom = Table.ExpandTableColumn(RemovedColumns, "Custom", {"Значение", "Index"}, {"Значение", "Index"}),
// Эти 3 строчки кода ниже нам создают динамичный лист названия колонок для объединения данных через запятную для последнего шага MergedColumns.
// Проблема при объединении колонок - это то, что их названия прописываются как говорится Hardcoded. Т.е. если на текущий момент наш запрос сработает,
// то завтра данные обновятся и колонок станет больше, но они в шаг MergedColumns уже бы не попали.
ChangeFutureListToText = Table.TransformColumnTypes(ExpandedCustom,{{"Index", type text}}), // важно чтобы Лист создавался из Text type
CustomIndex = ChangeFutureListToText[Index], // создание листа. Есть кнопка в интерфейсе
List = List.Distinct(CustomIndex), // убираем дубликаты
// Выделяем колонку Index и делаем Pivot по колонке Значение и выбираем в Advance - Dont Aggregate
PivotedColumn = Table.Pivot(Table.TransformColumnTypes(ExpandedCustom, {{"Index", type text}}, "ru-RU"),
List.Distinct(Table.TransformColumnTypes(ExpandedCustom, {{"Index", type text}}, "ru-RU")[Index]), "Index", "Значение"),
// Выделяем колонки от 0 и дальше и соединяем их через ",". По умолчанию (по примеру), там где List в шаге MergedColumns ,
// было бы {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, т.е. жестко прописаны (Hardcoded) названия колонок, а если бы их стало больше,
// то они бы не попали в объединение. Но благодаря выше 3-м шагам мы создали динамичный лист названия колонок
MergedColumns = Table.CombineColumns(PivotedColumn, List ,Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Merged")
in
MergedColumns |