Спеціальна функція використовує мову формул M, приймає набір вхідних значень, а потім повертає одне значення виводу. Якщо ви маєте логіку, яку потрібно використати багато разів або застосувати однаковий набір перетворень до іншого запиту чи значення, спробуйте створити спеціальну функцію, а потім викликати функцію, де та коли вона знадобиться. Створити спеціальну функцію можна кількома способами:
- Скористайтеся Розширений редактор, щоб додати власну інструкцію let і почати з нуля.
- Використайте команду Invoke Custom Function (Викликати настроювану функцію ).
- Існують додаткові способи створення функцій, які не обговорюються в цій статті довідки, зокрема команди Створити функцію та Додати як запит . Докладні відомості див. в статті Докладні відомості про функції Power Query M (docs.com) і Використання спеціальних функцій (docs.com).
Створення та виклик простої спеціальної функції за допомогою Розширений редактор
Нижче наведено простий приклад спеціальної функції, яка має давню традицію програмування.
Щоб створити пустий запит:
Excel Виберіть параметр Дані>Отримати дані>з інших джерел>Пустий запит.
Power Query клацніть правою кнопкою миші пусте місце в області Запити ліворуч, а потім виберіть Новий запит>Інші джерела>Пустий запит.
В області Запити ліворуч двічі клацніть ім'я та перейменуйте новий пустий запит на HelloWorld.
Виберіть новий запит і натисніть кнопку Основне>Розширений редактор.
Замініть початковий код шаблону таким кодом:
let
HelloWorld = () => ("Hello World")
in
HelloWorldНатисніть кнопку Готово.
Ви змінили запит "HelloWorld" на спеціальну функцію. Зверніть увагу на
від неї.Щоб викликати функцію, виберіть її та натисніть кнопку Викликати в режимі попереднього перегляду даних.
Результати функції відображаються в поданні попереднього перегляду даних і додаються до області запити як запит із стандартним іменем Invoked Function. Ви можете перейменувати його на щось змістовніше, наприклад "HelloWorldResult".
Виберіть цей запит, а потім натисніть кнопку Закрити основне>& Завантажити , щоб переглянути результати на аркуші.
Результати.
Створення та виклик спеціальної функції з параметром із Розширений редактор
У наведеному нижче прикладі показано, як передати параметр спеціальній функції, щоб перетворити десяткове число на шістнадцяткове.
Щоб створити пустий запит:
Excel Виберіть параметр Дані>Отримати дані>з інших джерел>Пустий запит.
Power Query клацніть правою кнопкою миші пусте місце в області Запити ліворуч, а потім виберіть Новий запит>Інші джерела>Пустий запит.
В області "Запити " ліворуч перейменуйте новий пустий запит на "MyHex".
Виберіть новий запит і натисніть кнопку Основне>Розширений редактор.
Замініть початковий код шаблону таким кодом:
let
MyHex = (parameter1) => Number.ToText(parameter1,"X")
in
MyHexНатисніть кнопку Готово.
Запит "MyHex" змінено на настроювану функцію. Зверніть увагу на
від неї.Щоб викликати функцію, виберіть її, а потім у вікні Попередній перегляд даних введіть число в полі параметр1 і натисніть кнопку Викликати.
Результати функції відображаються в поданні попереднього перегляду даних і додаються до області "Запити " як запит із стандартним іменем "Викликана функція". Ви можете перейменувати його на щось змістовніше, наприклад "MyHexResult".
Виберіть цей запит, а потім натисніть кнопку Закрити основне>& Завантажити , щоб переглянути результати на аркуші.
Результати.
Додавання стовпця за допомогою виклику спеціальної функції
Якщо ви створили функцію принаймні з одним параметром, її можна викликати як спеціальну функцію, щоб створити новий стовпець і нове значення для кожного рядка в таблиці.
Щоб відкрити запит, знайдіть попередньо завантажену з Редактор Power Query, виділіть клітинку в даних і натисніть кнопкуРедагуватизапит>. Докладні відомості див. в статті Створення, редагування та завантаження запиту в програмі Excel (Power Query).
Примітка У цьому прикладі для запиту потрібен принаймні один стовпець типу даних "Ціле число ".
Створіть спеціальну функцію "MyHex", як описано в розділі Створення та виклик спеціальної функції з параметром Розширений редактор.
У запиті виберіть Додати стовпець>Викликати настроювану функцію. Відкриється діалогове вікно Invoke Custom Function (Викликати настроювану функцію ).
Введіть ім'я нового стовпця, наприклад "HexConvert", у полі Ім'я нового стовпця .
Виберіть ім'я попередньо визначеної спеціальної функції з розкривного списку Запит функції. У цьому прикладі виберіть елемент "MyHex".
Оскільки настроювана функція посилається на параметр, параметр відображається.
Виберіть стовпець типу даних " Ціле число " як параметр функції.
Натисніть кнопку OK.
Результат
Буде створено новий стовпець із шістнадцятковим значенням стовпця "Ціле число", введеного як параметр.
Додаткові відомості
Створення формул Power Query в програмі Excel
Створення параметризованого запиту