Страницы: 1
RSS
Выборочное разбиение содержимого столбца на несколько столбцов в Power Query, Редакция таблицы в PQ
 
Добрый день, уважаемые спецы!
Помогите с вопросом. Как разделить один столбец на несколько других выборочно? Пример как нужно во вложении.
 
Марат Абдуллаев, пример бы побольше
С функцией Андрея Лящук
Код
// Таблица1 (2)
let
    Source   = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    ToRows   = List.Buffer(Table.ToRows(Source)),
    fn       = (j)=>    let
                  a = List.Generate(
                        ()=>[i=j+1,v=ToRows{i},s=v{1}], 
                        each if [i]<List.Count(ToRows) 
                            then Number.Round([s],10)<=Number.Round(ToRows{j}{1},10) 
                            else false,
                        each [i=[i]+1,v=ToRows{i},s=[s]+v{1}],each [v]
                      ),
                  b = {List.Count(a)+j+1,ToRows{j}{0},Table.FromRows(a)}
               in b,
    Generate = List.Generate(
                       ()=>fn(0),
                       each _{0}<=List.Count(ToRows), 
                       each fn(_{0}),
                       each List.Skip(_,1)
                   ),
    Custom1 = Table.FromRows(Generate,
                   {"Статьи","tb"}
               ),
    Expand   = Table.ExpandTableColumn(Custom1, "tb", {"Column1", "Column2"}),
    Pivot = Table.Pivot(Expand, List.Distinct(Expand[Column1]), "Column1", "Column2")
in
    Pivot
 
В условиях отсуствия справочника какие строки к какому уровню иерархии относятся можно разобрать структуру вот так.
НО! Это не четкий поиск, который при определенных условиях может давать некорректный результат.
Однако какой пример, такое и решение. Таких нечетких разборов можно еще один алгоритм собрать, но сейчас времени нет. Здесь использована функция из моего же решения такой же задачи в этой теме. Если кто из гуру вдруг надумает критиковать функцию, то я знаю, что её можно оптимизировать, и вместо записей работать ос списками, а также сделать её полностью универсальной для любого количества уровней, а не только для четырех. Но пока вот лично мне в работе такое не потребуется (что маловероятно  ;)  ) за оптимизацию даже не возьмусь. Просто вот тогда мне задачка запала, можно ли хоть как-то разобрать сжатую структуру сводной.
Скрытый текст

З.Ы. О а у Андрея как раз была оптимизированная функция!  8) Снимаю шляпу. Чудесный код.
Изменено: PooHkrd - 04.06.2020 10:33:20
Вот горшок пустой, он предмет простой...
 
Супер! Спасибо большое.
 
Я начал пользоваться PQ недавно. Не владею формулами редактирования. А нет ли на ленте PQ готовых команд для такого вида преобразований?
 
Марат Абдуллаев, лично я не нашел.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
у Андрея как раз была оптимизированная функция!
вот только она для одного уровня вложенности, для многоуровневых структур нужно будет рекурсию думать, но, имхо, проще будет выковырять стили из xml и трансформировать уже опираясь на них
Страницы: 1
Наверх