Применяется к
Excel для Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Excel 2010

Пользовательская функция использует язык формул M, принимает набор входных значений, а затем возвращает одно выходное значение. Если у вас есть логика, которую вы хотите многократно использовать или применить один и тот же набор преобразований к другому запросу или значению, рассмотрите возможность создания пользовательской функции и последующего вызова функции в нужное время. Существует несколько способов создания пользовательской функции: 

Ниже приведен простой пример пользовательской функции, которая следует давней традиции программирования.

  1. Чтобы создать пустой запрос:Excel    Select Data > Get Data > From Other Sources (Получить данные из других источников) > пустой запрос.Power Query    щелкните правой кнопкой мыши пустое место в области Запросы слева, а затем выберите Создать запрос > Другие источники > Пустой запрос.

  2. В области Запросы слева дважды щелкните имя, а затем переименуйте новый пустой запрос в HelloWorld.

  3. Выберите новый запрос и выберите Главная > Расширенный редактор.

  4. Замените начальный код шаблона следующим кодом:

    let      HelloWorld = () => ("Hello World") in      HelloWorld

  5. Нажмите кнопку Готово.

  6. Вы изменили запрос HelloWorld на пользовательскую функцию. Обратите внимание на значок функции Значок функции слева от него.

  7. Чтобы вызвать функцию, выберите ее, а затем выберите Вызов в режиме предварительного просмотра данных.Ссылки на пользовательскую функцию HelloWorld

  8. Результаты функции отображаются в режиме предварительного просмотра данных и добавляются в область Запросы в виде запроса с именем по умолчанию Invoked Function. Вы можете переименовать его в более понятное, например HelloWorldResult.

  9. Выберите этот запрос, а затем выберите Главная > Закрыть & Загрузить , чтобы просмотреть результаты на листе.

Результаты 

Результаты HelloWorld на

В следующем примере показано, как передать параметр в пользовательскую функцию для преобразования десятичного числа в шестнадцатеричное.

  1. Чтобы создать пустой запрос:Excel    Select Data > Get Data > From Other Sources (Получить данные из других источников) > пустой запрос.Power Query    щелкните правой кнопкой мыши пустое место в области Запросы слева, а затем выберите Создать запрос > Другие источники > Пустой запрос.

  2. В области Запросы слева переименуйте новый пустой запрос в "MyHex".

  3. Выберите новый запрос и выберите Главная > Расширенный редактор.

  4. Замените начальный код шаблона следующим кодом:

    let      MyHex = (parameter1) => Number.ToText(parameter1,"X") in      MyHex

  5. Нажмите кнопку Готово.

  6. Вы изменили запрос MyHex на пользовательскую функцию. Обратите внимание на значок функции Значок функции слева от него.

  7. Чтобы вызвать функцию, выберите ее, а затем в разделе Предварительный просмотр данных введите число в поле parameter1 и выберите Вызов.

    Ссылки на пользовательскую функцию MyHex

  8. Результаты функции отображаются в режиме предварительного просмотра данных и добавляются в область Запросы в виде запроса с именем по умолчанию Invoked Function. Вы можете переименовать его в более понятное, например MyHexResult.

  9. Выберите этот запрос, а затем выберите Главная > Закрыть & Загрузить , чтобы просмотреть результаты на листе.

Результаты 

Результат функции MyHex на

Если вы создали функцию с хотя бы одним параметром, ее можно вызвать как пользовательскую функцию для создания нового столбца и нового значения для каждой строки таблицы.

  1. Чтобы открыть запрос, найдите ранее загруженный из Редактор Power Query, выберите ячейку в данных, а затем выберите Запрос > Изменить. Дополнительные сведения см. в статье Создание, изменение и загрузка запроса в Excel (Power Query).Заметка    В этом примере запросу требуется по крайней мере один столбец типа данных Whole Number .

  2. Создайте пользовательскую функцию MyHex, как описано в разделе Создание и вызов настраиваемой функции с параметром с Расширенный редактор.

  3. В запросе выберите Добавить столбец > Вызов настраиваемой функции. Откроется диалоговое окно Вызов пользовательской функции .

  4. Введите имя нового столбца, например "HexConvert", в поле Имя нового столбца .

  5. Выберите имя предварительно определенной пользовательской функции в раскрывающемся списке Запрос функции. В этом примере выберите "MyHex".

  6. Так как пользовательская функция ссылается на параметр, параметр теперь отображается.

  7. Выберите столбец типа данных Whole Number в качестве параметра функции.Диалоговое окно "Вызвать пользовательскую функцию"

  8. Нажмите кнопку ОК.

Result (Результат)

Создается новый столбец с шестнадцатеричным значением столбца Whole Number, введенного в качестве параметра.

Новый столбец значений MyHex на

См. также

Справка по Power Query для Excel

Создание формул Power Query в Excel

Создание запроса с параметрами

Управление запросами

Основные сведения о функциях M Power Query (docs.com)

Использование пользовательских функций (docs.com)

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.