Всем привет!
Мне нужно упорядочить данные в таблицу. На этапе формирования я добавлял к ключевым полям знак фигурной скобки, чтобы потом применить разбивку текста по столбцам используя разделители (Лист1).
При разбивке текста по столбцам оказалось, что в данных есть пропуски. Из-за этого таблица съезжает. Потеря единицы данных сдвигает материал в строке на две ячейки влево. В идеале таблица должна иметь вид, как Лист3.
Для решения этой задачи подсказал следующий код, для Power Query:
Код |
---|
let from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], split = Table.SplitColumn(from, "Столбец1", Splitter.SplitTextByDelimiter("{")), f=(x)=>[a=List.RemoveNulls(Record.ToList(x)), b=a{0}, c = List.Split(List.Skip(a,1),2), d = List.Accumulate(c,[Имя=b],(x,y)=>if Record.HasFields(x,y{0}) then Record.AddField(x,y{0}&"1",y{1}) else Record.AddField(x,y{0},y{1}))][d], tbl = Table.AddColumn(split,"tmp",each f(_)), to = Table.FromRecords(tbl[tmp],null, MissingField.UseNull) in to |
При применении этого кода постоянно вылазит ошибка Expression.Error: Аргументы 3 были переданы функции, которая ожидает значения между 1 и 2. Жалуется на (см. красную строчку)
Хочу узнать:
1) В условиях поставленной задачи на верном ли я пути?
2) Если да, то почему возникает ошибка Expression.Error:
3) Если нет, как можно раскидать данные, чтобы привести таблицу к виду Лист3
Версия: Excel 2013 (x32).
Версия: PowerQuery_2.59.5135.201 (32-bit) [ru-RU]
Тема также затронута на