Функція M для таблиці дат – як додати параметр у редакторі запитів

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

Питання стосувалося того, як змінити нумерацію 1-го дня тижня з 0 на 1 . Зауважте, що це не змінює фактичний початок робочого дня. У цій таблиці дат початком тижня завжди буде понеділок. Йдеться лише про те, щоб називати понеділок Днем 1 замість Дня 0.

Цей процес не обов’язково складний, але вам потрібне базове розуміння структури мови M. Якщо ви є учасником LuckyTemplates, ви можете перевірити. Вступ торкається теми.

Зміст

Функція M і розширена таблиця дат

Дозвольте мені почати з переходу до Power Query . Я вже скопіював сюди функцію M таблиці дат .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Я отримав функцію M із категорії M Code Showcase на форумі LuckyTemplates . Код знаходиться під темою.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Якщо я відкрию розширений редактор , це код.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Там багато коду M, який може відволікати.

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

Оскільки у функції M відбувається занадто багато, я почну з нового порожнього запиту .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Я збираюся назвати цей тестовий запит .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Далі я збираюся відкрити розширений редактор .

Функція M для таблиці дат – як додати параметр у редакторі запитів

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

Функція M для таблиці дат – як додати параметр у редакторі запитів

Щоб запустити функцію, я збираюся оголосити необов’язковий параметр .

Функція M для таблиці дат – як додати параметр у редакторі запитів

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

Функція M для таблиці дат – як додати параметр у редакторі запитів

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

Наступним кроком буде додавання пропозиції let і пропозиції in .

Функція M для таблиці дат – як додати параметр у редакторі запитів

У пропозиції let мені потрібна назва змінної. Тож я назву цю змінну WDStart .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Тепер мені потрібно перевірити, чи було передано WDStartNum . Якщо він пройде, він не прирівнюватиметься до null . Тож я збираюся оголосити, що якщо WDStartNum не дорівнює null, я хочу, щоб було повернуто значення .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Що стосується пункту in, я хочу, щоб той самий крок було виконано. Тож я просто поміс��ю туди WDStart , яку ми назвали змінною раніше в пропозиції let.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Як тільки я натисну «Готово», функція буде створена. Тому я спробую передати значення через цю функцію.

Я спробую ввести літеру «а».

Функція M для таблиці дат – як додати параметр у редакторі запитів

Пам’ятайте, що раніше я оголосив, що значення має бути числом. Оскільки він розпізнає, що введене мною значення не відповідає цій вимозі, він не дозволить мені ввести цей параметр.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Тож я збираюся видалити це та просто залишу місце порожнім.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Щойно я натискаю Invoke, воно повертає значення 0.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Повертаючись до мого початкового запиту, у ньому сказано, що якщо значення не дорівнює null, потрібно повернути WDStartNum. Якщо він дорівнює null, тоді має бути повернуто 0.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Отже, 0 правильний.

Цього разу я спробую передати значення, змінивши число в TestQuery. Щоправда, він повертає «1», коли я натискаю Enter.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Тепер дозвольте мені спробувати пройти 2020 рік у TestQuery. Коли я натискаю Enter, також повертається 2020 рік.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Очевидно, я не хочу, щоб це сталося. Оскільки мені потрібно значення, яке представляє початок тижня, я хочу, щоб з’являлося або 0, або 1. Це означає, що мені потрібно створити інший тест, щоб побачити, чи введене число є 0 чи 1. Для цього я можу використати функцію List.Contains .

Використання List.Contains

Я створив порожній запит і ввів List.Contains без використання дужок.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Коли я натискаю клавішу enter, я бачу документацію щодо цієї функції.

Функція M для таблиці дат – як додати параметр у редакторі запитів

List.Contains вказує, чи список містить значення.

Отже, першим параметром потрібен список, а потім додається значення. Якщо це значення знайдено в списку, воно повертає true. В іншому випадку він поверне false.

Я знову відкрию розширений редактор , щоб внести необхідні зміни у свій запит.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Замість того, щоб перевіряти, чи значення не дорівнює null, я збираюся використовувати List.Contains .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Тепер я наведу список значень, які будуть застосовані до цієї функції.

Я буду використовувати фігурні дужки як ініціалізатор списку. У цих фігурних дужках я поставлю 0, 1. Я додам кому після закриття цієї дужки.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Для другого параметра я збираюся використовувати WDStartNum. Потім я додам закриваючу дужку.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Якщо це на місці, це означає, що 0 або 1 повинні дати мені WDStartNumber. Якщо поставлено щось інше, ніж 0 або 1, я повинен отримати результат 0.

Дозвольте мені перевірити це, поставивши 2020 у TestQuery. Як і очікувалося, це повертає «0» (нуль).

Функція M для таблиці дат – як додати параметр у редакторі запитів

Це тому, що значення 2020 немає в списку.

Додавання параметра до функції M

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

Функція M для таблиці дат – як додати параметр у редакторі запитів

Потім я перейду до запиту таблиці дат.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Я відкрию оригінальну функцію M за допомогою розширеного редактора .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Потім я збираюся вставити туди свій код. Переконаємося, що в кінці рядка стоїть кома.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Далі я збираюся виділити та скопіювати назву свого параметра .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Потім я додам цей параметр сюди .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Функція M для таблиці дат – як додати параметр у редакторі запитів

Зауважте, що спочатку я маю додати кому в кінці існуючого рядка, а потім оголосити цей параметр необов’язковим . Тоді я можу розмістити WDStartNum і додати тип .

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

Функція M для таблиці дат – як додати параметр у редакторі запитів

Потім я додам + WDStart .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Я клацну «Готово» , щоб закрити редактор. Потім я викличу запит.

Для StartDate я вставлю 1 січня 2020 року, а потім використаю 31 грудня 2020 як EndDate.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Я використовую «7» як місяць початку фінансового року, потім я вставлю «0» як WDStartNum.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Я клацну Виклик. Тепер у мене є таблиця дат.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Я перейменую його, щоб його можна було легко ідентифікувати.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Зараз я перевірю результати.

Це моя колонка DayOfWeek .

Функція M для таблиці дат – як додати параметр у редакторі запитів

Це показує, що понеділок повернувся як 0.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Повертаючись до запитання на форумі, мені потрібно змінити число початку тижня на 1 замість 0. Тому я просто зміню це в мірі.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Коли я натискаю Enter, понеділок тепер буде днем ​​1 замість дня 0.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Дивлячись на діапазон чисел, тепер він працює від 1 до 7 замість 0 до 6.

Функція M для таблиці дат – як додати параметр у редакторі запитів

Що станеться, якщо я передам нульове значення?

Функція M для таблиці дат – як додати параметр у редакторі запитів

Тоді DayOfWeek для понеділка просто повертається до 0.

Функція M для таблиці дат – як додати параметр у редакторі запитів




Висновок

Ось як ви можете додати додатковий параметр прямо у функцію M у запиті таблиці дат. Процес зовсім не складний, як я вже згадував раніше. Поки у вас є джерело для коду M, звідти все досить легко.

Знову ж таки, ви завжди можете переглянути курс Advanced Data Transformations & Modeling уОнлайн, якщо ви не знаєте, як працюють коди M.

Все найкраще,

Меліса

***** Вивчаєте LuckyTemplates? *****







Відкрийте для себе унікальні ідеї за допомогою функції TOPN LuckyTemplates

Відкрийте для себе унікальні ідеї за допомогою функції TOPN LuckyTemplates

У цьому блозі представлено функцію LuckyTemplates TOPN DAX, яка дає вам змогу отримувати унікальну статистику з ваших даних, допомагаючи вам приймати кращі маркетингові рішення.

Моделювання даних у LuckyTemplates за допомогою допоміжних таблиць

Моделювання даних у LuckyTemplates за допомогою допоміжних таблиць

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

Розширений DAX для LuckyTemplates: впровадження логіки ранжування в унікальній статистиці

Розширений DAX для LuckyTemplates: впровадження логіки ранжування в унікальній статистиці

Тут ми зануримося в LuckyTemplates Advanced DAX і запровадимо логіку ранжирування, щоб отримати дуже унікальну інформацію. У цьому прикладі я також демонструю розгалуження міри.

Функція параметра LuckyTemplates «Що, якщо».

Функція параметра LuckyTemplates «Що, якщо».

У цьому блозі представлено нову функцію в LuckyTemplates — параметр аналізу «Що, якщо». Ви побачите, як це робить усе швидким і легким для аналізу сценарію.

Використовуйте розгалуження міри LuckyTemplates, щоб перевірити, чи зростає ваша маржа зі зростанням доходу

Використовуйте розгалуження міри LuckyTemplates, щоб перевірити, чи зростає ваша маржа зі зростанням доходу

Дізнайтеся, як визначити, чи добре зростає ваш дохід, перевіривши, чи зросла ваша маржа за допомогою розгалуження міри LuckyTemplates.

Параметри LuckyTemplates через редактор запитів

Параметри LuckyTemplates через редактор запитів

Дізнайтеся та зрозумійте, як можна створювати та використовувати параметри LuckyTemplates, які є потужною функцією редактора запитів.

Кругла гістограма – візуалізація для вашої інформаційної панелі

Кругла гістограма – візуалізація для вашої інформаційної панелі

У цьому підручнику буде обговорено створення круглої гістограми за допомогою Charticulator. Ви дізнаєтеся, як створити їх для звіту LuckyTemplates.

Функції та формули PowerApps | Вступ

Функції та формули PowerApps | Вступ

Дізнайтеся, як використовувати функції та формули PowerApps, щоб покращити функціональність і змінити поведінку в нашій програмі Canvas Power Apps.

Труба в R: підключення функцій за допомогою Dplyr

Труба в R: підключення функцій за допомогою Dplyr

У цьому підручнику ви дізнаєтесь, як об’єднати функції разом за допомогою оператора каналу dplyr мовою програмування R.

RANKX Deep Dive: функція LuckyTemplates DAX

RANKX Deep Dive: функція LuckyTemplates DAX

RANKX від LuckyTemplates дозволяє повернути рейтинг певного числа в кожному рядку таблиці, який є частиною списку чисел.