Страницы: 1
RSS
Нормализация таблицы в с несколькими уровнями группировки в PQ
 
Добрый день, коллеги

проблема такая, каждый день мы получаем файл Эксель с огромным количеством строк в котором несколько уровней группировки данных. Задача состоит в том чтобы получить нормализованную таблицу. Пример файла во вложении. Первый лист это исходный вариант файла, но он очень усечен т.к. объем превышает разрешенный для закачивания на этом сайте. На втором листе результат который бы хотелось получить в автоматическом режиме через PQ на ежедневной основе.

Заранее спасибо всем откликнувшимся.
Изменено: Sekonya - 11.04.2024 08:33:45
 
Sekonya,

Это Вам к buchlotnik надо обращаться. Не знаю как тут относятся к публикациям ссылок на сторонние ресурсы, поэтому поищите в поисковике "Раскидываем иерархию через List.Generate". В этом видео исчерпывающий ответ на ваш вопрос.
 
Цитата
MadNike написал:
Раскидываем иерархию через List.Generate
зачем так усложнять? ТС-у нужен только 2 нижних уровня. А если учесть, что у "заголовков" отсутствуют данные в некоторых колонках, то здесь и Table.Group справится.
Table.Group

Sekonya, исходные данные в файле с решением - в поименованном диапазоне. Если будете читать внешний файл, то поменяйте код в начале. Также названия колонок скорректируйте на свое усмотрение.
Пришелец-прораб.
 
Здравствуйте, спасибо огромное за уделение внимания)

мне бы хотелось понять эту конструкцию, если не трудно, сможете объяснить?

есть первый шаг в запросе: "= Table.Skip(Excel.CurrentWorkbook(){[Name = "data_table"]}[Content], 4)"
откуда берется данные? по названию понятно что это "data_table", но в файле Excell я не могу найти этой таблицы.

когда я вставляю в свой файл этот запрос, он ругается что не может найти таблицу "data_table"
 
Извиняюсь, с этим разобрались

следующий вопрос:

= Table.Group(
       data,
       {"Column1", "Column2", "Column3"},
       {"x", (x) => Table.Skip(x)},
       GroupKind.Local,
       (s, c) => Number.From(s[Column3] is null and c[Column3] is null)
   )[[Column1], [Column2], [x]]

здесь ругается:
Expression.Error: Столбец "Column1" таблицы не найден.
Сведения:
   Column1
 
Цитата
Sekonya написал:
Столбец "Column1" таблицы не найден.
а что здесь непонятного? Попробуйте заменить Column1 на Столбец1
Пришелец-прораб.
 
Цитата
написал:
а что здесь непонятного? Попробуйте заменить Column1 на Столбец1
Пробую сделать Столбец1

ошибка:
Expression.Error: Столбец "Столбец1" таблицы не найден.
Сведения:
   Столбец1

может  не там меняю)
 
Цитата
Sekonya написал:
может  не там меняю)
посмотрите на названия столбцов после первого шага в вашем файле. Сравните их с названиями тех же столбцов в моем файле. Если и после этого не придет понимание что же надо сделать, то сходите в раздел Работа - там расскажут и покажут.
Или вот этот код попробуйте применить:
не зависит от названия колонок
Изменено: AlienSx - 12.04.2024 09:22:19
Пришелец-прораб.
 
Цитата
написал:
а что здесь непонятного? Попробуйте заменить Column1 на Столбец1
Спасибо огромное. Все получилось!!!
Страницы: 1
Наверх