Спеціальна функція використовує мову формул M, приймає набір вхідних значень, а потім повертає одне значення виводу. Якщо ви маєте логіку, яку потрібно використати багато разів або застосувати однаковий набір перетворень до іншого запиту чи значення, спробуйте створити спеціальну функцію, а потім викликати функцію, де та коли вона знадобиться. Створити спеціальну функцію можна кількома способами:
-
Скористайтеся Розширений редактор, щоб додати власну інструкцію let і почати з нуля.
-
Використайте команду Invoke Custom Function (Викликати настроювану функцію ).
-
Існують додаткові способи створення функцій, які не обговорюються в цій статті довідки, зокрема команди Створити функцію та Додати як запит . Докладні відомості див. в статті Докладні відомості про функції Power Query M (docs.com)і Використання спеціальних функцій (docs.com).
Нижче наведено простий приклад спеціальної функції, яка має давню традицію програмування.
-
Щоб створити пустий запит,виберіть пункт "Дані ",> "Отримати дані > з інших джерел" > "Пустий запит".Power Query Клацніть правою кнопкою миші пусте місце в області Запити ліворуч, а потім виберіть Новий запит > Інші джерела > Пустий запит.
-
В області Запити ліворуч двічі клацніть ім'я та перейменуйте новий пустий запит на HelloWorld.
-
Виберіть новий запит і натисніть кнопку Домашня > Розширений редактор.
-
Замініть початковий код шаблону таким кодом:
let HelloWorld = () => ("Hello World") in HelloWorld
-
Натисніть кнопку Готово.
-
Ви змінили запит "HelloWorld" на спеціальну функцію. Зверніть увагу, що піктограма функції
ліворуч від неї. -
Щоб викликати функцію, виберіть її та натисніть кнопку Викликати в режимі попереднього перегляду даних.
-
Результати функції відображаються в поданні попереднього перегляду даних і додаються до області запити як запит із стандартним іменем Invoked Function. Ви можете перейменувати його на щось змістовніше, наприклад "HelloWorldResult".
-
Виберіть цей запит і натисніть кнопку Основне > Закрити & Завантажити , щоб переглянути результати на аркуші.
Результати.
У наведеному нижче прикладі показано, як передати параметр спеціальній функції, щоб перетворити десяткове число на шістнадцяткове.
-
Щоб створити пустий запит,виберіть пункт "Дані ",> "Отримати дані > з інших джерел" > "Пустий запит".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
Створення параметризованого запиту