Пользовательская функция использует язык формул M, принимает набор входных значений, а затем возвращает одно выходное значение. Если вы хотите использовать логику многократно или применять один и тот же набор преобразований к другому запросу или значению, рекомендуется создать пользовательскую функцию и вызывать ее там, где и когда это необходимо. Существует несколько способов создания пользовательской функции:
- Используйте расширенный редактор, чтобы добавить собственное предложение let и начать с нуля.
- Использование команды "Вызов настраиваемой функции ".
- Существуют и другие способы создания функций, не описанные в этом разделе справки, в том числе команды "Создать функцию " и "Добавить как запрос ". Более подробное обсуждение см. в разделах Общие сведения о функциях Power Query M (docs.com) и Использование пользовательских функций (docs.com).
Создайте и вызовите простую пользовательскую функцию с помощью расширенного редактора
Ниже приведен простой пример пользовательской функции, которая следует давней традиции программирования.
Чтобы создать пустой запрос, выполните следующие действия.
Excel Выбор данных>Получение данных>из других источников>Пустой запрос.
Power Query Щелкните правой кнопкой мыши пустое место в области "Запросы" слева и выберите "Создать запрос>""Другие источники>", "Пустой запрос".
В области запросов слева дважды щелкните имя и переименуйте новый пустой запрос в "HelloWorld".
Выберите новый запрос и нажмите «ГлавнаяРасширенный> редактор».
Замените начальный код шаблона следующим кодом:
let
HelloWorld = () => ("Hello World")
in
HelloWorldНажмите кнопку Готово.
Вы изменили запрос "HelloWorld" на пользовательскую функцию. Обратите внимание на значок
слева от него.Чтобы вызвать функцию, выберите ее, а затем выберите "Вызов " в режиме предварительного просмотра данных.
Результаты выполнения функции отображаются в предварительном просмотре данных и добавляются в область "Запросы " в виде запроса с именем по умолчанию "Вызванная функция". Возможно, вам потребуется переименовать его во что-то более понятное, например "HelloWorldResult".
Выберите этот запрос и нажмите "Главная>"Закрыть & Загрузить, чтобы просмотреть результаты на листе.
Результаты
Создайте и вызовите пользовательскую функцию с параметром в расширенном редакторе
В следующем примере показано, как передать в пользовательскую функцию параметр для преобразования десятичного числа в шестнадцатеричное.
Чтобы создать пустой запрос, выполните следующие действия.
Excel Выбор данных>Получение данных>из других источников>Пустой запрос.
Power Query Щелкните правой кнопкой мыши пустое место в области "Запросы" слева и выберите "Создать запрос>""Другие источники>", "Пустой запрос".
В области "Запросы " слева переименуйте новый пустой запрос в "MyHex".
Выберите новый запрос и нажмите «ГлавнаяРасширенный> редактор».
Замените начальный код шаблона следующим кодом:
let
MyHex = (parameter1) => Number.ToText(parameter1,"X")
in
MyHexНажмите кнопку Готово.
Вы изменили запрос MyHex на пользовательскую функцию. Обратите внимание на значок
слева от него.Чтобы вызвать функцию, выберите ее, а затем в режиме предварительного просмотра данных введите число в поле parameter1 и нажмите кнопку Invoke.
Результаты выполнения функции отображаются в режиме предварительного просмотра данных и добавляются в область "Запросы " как запрос с именем по умолчанию " Вызванная функция". Возможно, потребуется переименовать его во что-то более понятное, например "MyHexResult".
Выберите этот запрос и нажмите "Главная>"Закрыть & Загрузить, чтобы просмотреть результаты на листе.
Результаты
Добавление столбца с помощью настраиваемой функции
Если создана функция с хотя бы одним параметром, ее можно вызвать как пользовательскую функцию, чтобы создать новый столбец и новое значение для каждой строки таблицы.
Чтобы открыть запрос, найдите запрос, ранее загруженный из редактора Power Query, выберите ячейку в данных, а затем выберите "Редактировать запрос>". Дополнительные сведения см. в статье Создание, изменение и загрузка запроса в Excel (Power Query).
Примечание В этом примере запросу требуется по крайней мере один столбец типа данных "Целое число ".
Создайте пользовательскую функцию MyHex, как описано в разделе «Создание и вызов пользовательской функции с параметром в расширенном редакторе».
В запросе выберите Add Column>Invoke Custom Function. Откроется диалоговое окно "Вызов настраиваемой функции ".
Введите новое имя столбца, например "HexConvert", в поле " Новое имя столбца ".
Выберите имя предопределенной пользовательской функции в раскрывающемся списке запросов функций. В этом примере выберите "MyHex".
Поскольку пользовательская функция ссылается на параметр, он теперь отображается.
Выберите столбец типа данных "Целое число " в качестве параметра функции.
Нажмите кнопку ОК.
Результат
Создается новый столбец, в котором показано шестнадцатеричное значение столбца целого числа, введенного в качестве параметра.
См. также
Справка по Power Query для Excel
Создание формул Power Query в Excel
Создание запроса с параметрами