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