Максим Зеленский, спасибо.
Цитата |
---|
Андрей VG написал: Может код разобрать ? |
разобрать - это как, вот так?
Код |
---|
let
Таблица1 = Table.FromRecords(List.Accumulate(Table.ToRecords(Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content]), [id = 0, recs ={}], (acc, item) => [id = (if item[Столбец2] < 30 then acc[id] + 1 else acc[id]), recs = acc[recs] & {Record.AddField(item, "<30", if id = acc[id] then null else id)}])[recs]),
П1 = Table.ToRecords(Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content]),
П2 = List.Accumulate(П1, [id = 0, recs ={}], (acc, item) => [id = (if item[Столбец2] < 30 then acc[id] + 1 else acc[id]), recs = acc[recs] & {Record.AddField(item, "<30", if id = acc[id] then null else id)}])[recs],
П3 = Table.FromRecords(П2)
in
П3
|
только не понимаю я шаг П2.
Подумайте на этой частью моего кода
"acc[recs] & {Record.AddField(item, "<30", if id = acc[id] then null else id)}"
Record.AddField добавляет запись в любом случае, при равенстве null, иначе id. а id при каждом неравенстве увеличивается на единицу.
Андрей VG написал:
Пусть в таблице N строк. Сколько раз будет создан новый список записей? Как это будет быстро, учитывая функциональные особенности Power Query?
если в таблице 10 строк, то и записей будет 10. или ошибаюсь? Сколько раз будет создан новый список записей? этот список что, перезаписывается каждый раз?
Андрей VG написал:
Сделайте для самого себя простейший тест на списке в 100000 элементов с использованием List.Accumulate с формированием нового списка, где каждый элемент на 1 больше
как сделать тест - не знаю.
мне уже расхотелось использовать в запросах List.Accumulate