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