Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

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

  • Скористайтеся розширеним редактором, щоб додати власну інструкцію let і почати з нуля.

  • Скористайтеся командою Invoke Custom Function.

  • У цьому розділі довідки не розглядаються додаткові способи створення функцій, зокрема "Створити функцію" та "Додати як запит". Докладні відомості див. в оглядах функцій Power Query M (docs.com)і Використання спеціальних функцій (docs.com).

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

  1. Щоб створити пустий запит, Excel виберіть> Отримати дані > з інших

          джерел > пустий запит.

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

  2. В області Запити ліворуч двічі клацніть ім'я, а потім перейменуйте новий пустий запит на "HelloWorld".

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

  4. Замініть початковий код шаблону на такий код:

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

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

  6. Ви змінили запит "Привіт, Уорд" на спеціальну функцію. Зверніть увагу на піктограму Піктограма функції ліворуч від неї.

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

    Виклик спеціальної функції HelloWorld

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

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

Результати 

Results of HelloWorld in a worksheet

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

  1. Щоб створити пустий запит, Excel виберіть> Отримати дані > з інших

          джерел > пустий запит.

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

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

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

  4. Замініть початковий код шаблону на такий код:

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

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

  6. Ви змінили запит "МійHex" на спеціальну функцію. Зверніть увагу на піктограму Піктограма функції ліворуч від неї.

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

    Виклик настроюваної функції MyHex

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

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

Результати 

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

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

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

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

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

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

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

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

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

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

    Діалогове вікно Invoke Custom Function (Спеціальна функція Invoke)

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

Результат

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

The new MyHex column of values in a worksheet

Див. також

Довідка: Power Query Excel

Створення формул Power Query у Excel

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

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

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

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

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×