Доброго времени суток!
Можно ли как-то в запросе ОДИН раз загрузить в буфер обмена значение [Шаг] из таблицы параметры (tParam) с целью последующего использования этого значения?
Ведь наверняка при каждом обращении к таблице с параметрами (Excel.CurrentWorkbook() {[Name="tParam"]}[Content]{0}[Шаг]) excel затрачивает доп. ресурсы и замедляет исполнение запроса.
Во вложении файл с примером. При 1 048 576 строках (на листе с исходными данными) обработка запроса у меня занимает более 18 сек., но по требованию максимального размера прикрепляемого файла в 100 кг пришлось уменьшить кол-во строк до 1500 строк.
Естественно мой пример не "жизненный", а вымышленный, но отражает боль при обработке и преобразовании дат рождений списка из 3000 сотрудников, который по понятным причинам не могу приложить.
В общем, подскажите как ускорить обработку запроса путём буферизации (Table.Buffer или List.Buffer)?
Вот исходный вар-нт кода:
Код |
---|
let Источник = Excel.CurrentWorkbook(){[Name="Исходник"]}[Content], #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Расчет с шагом", each [Число]+(Excel.CurrentWorkbook() {[Name="tParam"]}[Content]{0}[Шаг])) in #"Добавлен пользовательский объект" |
А вот то к чему я "стремлюсь" )):
Код |
---|
let Источник = Excel.CurrentWorkbook(){[Name="Исходник"]}[Content], MyValue = List.Buffer((Excel.CurrentWorkbook() {[Name="tParam"]}[Content]{0}[Шаг])), #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Расчет с шагом", each [Число]+MyValue) in #"Добавлен пользовательский объект" |
Но в итоге получаю ошибку типа:
Код |
---|
Expression.Error: Не удается преобразовать значение 10 в тип List. Сведения: Value=10 Type=Type |