Створення та виклик спеціальної функції

Застосовується до
Excel для Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Excel 2010

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

Створення та виклик простої спеціальної функції за допомогою Розширений редактор

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

  1. Щоб створити пустий запит:

    Excel Виберіть параметр Дані>Отримати дані>з інших джерел>Пустий запит.

    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 Виберіть параметр Дані>Отримати дані>з інших джерел>Пустий запит.

    Power Query клацніть правою кнопкою миші пусте місце в області Запити ліворуч, а потім виберіть Новий запит>Інші джерела>Пустий запит.

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

  3. Виберіть новий запит і натисніть кнопку Основне>Розширений редактор.

  4. Замініть початковий код шаблону таким кодом:
    let
         MyHex = (parameter1) => Number.ToText(parameter1,"X")
    in
         MyHex

  5. Натисніть кнопку Готово.

  6. Запит "MyHex" змінено на настроювану функцію. Зверніть увагу на піктограму функції Ліворуч від неї.

  7. Щоб викликати функцію, виберіть її, а потім у вікні Попередній перегляд даних введіть число в полі параметр1 і натисніть кнопку Викликати.
    Виклик настроюваної функції MyHex

  8. Результати функції відображаються в поданні попереднього перегляду даних і додаються до області "Запити " як запит із стандартним іменем "Викликана функція". Ви можете перейменувати його на щось змістовніше, наприклад "MyHexResult".

  9. Виберіть цей запит, а потім натисніть кнопку Закрити основне>& Завантажити , щоб переглянути результати на аркуші.

Результати.

Результат функції MyHex на аркуші

Додавання стовпця за допомогою виклику спеціальної функції

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

  1. Щоб відкрити запит, знайдіть попередньо завантажену з Редактор Power Query, виділіть клітинку в даних і натисніть кнопкуРедагуватизапит>. Докладні відомості див. в статті Створення, редагування та завантаження запиту в програмі Excel (Power Query).

    Примітка У цьому прикладі для запиту потрібен принаймні один стовпець типу даних "Ціле число ".

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

  3. У запиті виберіть Додати стовпець>Викликати настроювану функцію. Відкриється діалогове вікно Invoke Custom Function (Викликати настроювану функцію ).

  4. Введіть ім'я нового стовпця, наприклад "HexConvert", у полі Ім'я нового стовпця .

  5. Виберіть ім'я попередньо визначеної спеціальної функції з розкривного списку Запит функції. У цьому прикладі виберіть елемент "MyHex".

  6. Оскільки настроювана функція посилається на параметр, параметр відображається.

  7. Виберіть стовпець типу даних " Ціле число " як параметр функції.

    The Invoke Custom Function dialog box

  8. Натисніть кнопку OK.

Результат

Буде створено новий стовпець із шістнадцятковим значенням стовпця "Ціле число", введеного як параметр.

Новий стовпець MyHex зі значеннями на аркуші

Додаткові відомості

Power Query довідки з Excel

Створення формул Power Query в програмі Excel

Створення параметризованого запиту

Керування запитами

Загальні відомості про функції Power Query M (docs.com)

Використання спеціальних функцій (docs.com)