Прошу помощи. Есть список полей для добавления к исходной таблице. В процессе добавления образуемые столбцы необходимо заполнить. Во вложенном файле Таблица1 - исходная, её нужно дополнить полями из таблицы2, строки заполнить значениями, выдаваемыми функцией.
Пример схематичный, вопрос в том, как организовать множественное применение табличной функции (в данном случае Table.AddColumn) к списку полей. Возможно ли это?
Доброе время суток. А с дублями 4 вы что предлагаете делать в Таблица2? Фактически Pivot по этим полям не получиться. Можно конечно индексное имя создать, а в выводе просто скрыть заголовки - вы этого хотите?
Андрей VG, С дублями я, конечно, погорячился... Убрал.
И ещё пояснюсь. Хочется понять принцип "массового" применения к списку полей таблицы функции, которая не предусматривает передачу ей такого списка, а предусматривает передачу текстовым полем по одиночке. Что-то вроде цикла.. Если это возможно.
Ещё вопрос, a AddColumn здесь применить проблематично? Я к тому, что данное решение всё-таки частное, и если потребуется функция посложнее, чем умножение, то его уже не применить.
А хотелось бы более-менее универсального алгоритма, если можно.
quasarrr написал: потребуется функция посложнее, чем умножение,
Думаю, тогда стоит привести пример. В любом же случае остаётся вопрос, как вы будете ассоциировать некоторую функцию с парой значения первой таблицы и значения второй? Вот вариант с последовательным добавлением столбцов, делающий ровно тоже (и скорее всего медленнее).
Код
let
table1 = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
consts = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content][Список полей],
fn = (const, item) => const * item,
accItems = List.Transform(consts, each [value =_, function = fn]),
result = List.Accumulate(accItems, table1, (acc, next) =>
let
nextName = Text.From(next[value])
in
Table.AddColumn(acc, nextName, each next[function](_[Поле1], next[value]))
)
in
result