Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Модель оценки языка формул Power Query M моделиируется после того, как модель оценки обычно найдена в электронных таблицах, где порядок вычислений можно определить на основе зависимостей между формулами в ячейках.
Если вы написали формулы в электронной таблице, например Excel, вы можете распознать формулы слева, что приведет к значениям справа при вычислении:
В M выражение может ссылаться на предыдущие выражения по имени, и процесс оценки автоматически определяет порядок вычисления ссылочных выражений.
Давайте используем запись для создания выражения, эквивалентного приведенному выше примеру электронной таблицы. При инициализации значения поля вы ссылаетесь на другие поля в записи по имени поля следующим образом:
[
A1 = A2 * 2,
A2 = A3 + 1,
A3 = 1
]
Приведенное выше выражение оценивается в следующей записи:
[
A1 = 4,
A2 = 2,
A3 = 1
]
Записи могут содержаться внутри или вложенными в других записях. Оператор подстановки ([ ]) можно использовать для доступа к полям записи по имени. Например, в следующей записи есть поле с именем Sales, содержащее запись, и поле с именем Total, которое обращается к полям FirstHalf и SecondHalf записи Продаж:
[
Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
Total = Sales[FirstHalf] + Sales[SecondHalf]
]
Приведенное выше выражение оценивается в следующей записи:
[
Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
Total = 2100
]
Оператор позиционного индекса ({ }) используется для доступа к элементу в списке по числовой индексе. Значения в списке обращаются по индексу, который начинается с нуля. Например, индексы 0 и 1 используются для ссылки на первые и второй элементы в списке ниже:
[
Sales =
{
[
Year = 2007,
FirstHalf = 1000,
SecondHalf = 1100,
Total = FirstHalf + SecondHalf // equals 2100
],
[
Year = 2008,
FirstHalf = 1200,
SecondHalf = 1300,
Total = FirstHalf + SecondHalf // equals 2500
]
},
#"Total Sales" = Sales{0}[Total] + Sales{1}[Total] // equals 4600
]
Ленивый и страстный анализ
Выражения элементов списка, записи и таблицы, а также выражения (переход к выражениям, значениям и выражениям) оцениваются с помощью отложенной оценки. То есть они оцениваются при необходимости. Все остальные выражения оцениваются с помощью охотной оценки. То есть они оцениваются немедленно при обнаружении во время процесса оценки. Хороший способ думать об этом заключается в том, чтобы помнить, что оценка списка или выражения записи вернет значение списка или записи, которое знает, как его элементы списка или поля записи должны вычисляться при запросе (с помощью операторов поиска или индекса).