Александр,
Мы хотим получить список чисел, входящих в диапазон (1-75, например). В PQ этот список чисел можно записать как
{1..75}. Но просто передать значение строки = "1..75" и сцепить его с фигурными скобками недостаточно, т.к. PQ воспринимает 1..75 как текст.
Expression.Evaluate позволяет из текстового выражения {1..75} получить результат его вычисления, т.е. на выходе мы получаем список чисел от 1 до 75. При этом, если не указать второй параметр, то результатом вычисления будет ошибка. Это можно объяснить так. Если Expression.Evaluate не нужно "внешней" информации, для того, чтобы вычислить выражение, он это успешно делает без второго параметра, например
Expression.Evaluate("1+2+3") или
Expression.Evaluate("{"&"1..75"&"}"). В противном случае, нужно указать "среду вычисления" (expression environment), иначе Expression.Evaluate не поймёт любые названия функций PQ, названия таблиц, столбцов и т.д. Поскольку в данном примере используются только встроенные функции PQ, можно указать второй параметр
#shared. Используемый в примере
#sections[Section1] - более универсальный вариант, который должен корректно отработать и с пользовательскими функциями.