Код M у спеціальних стовпцях Power Query | LuckyTemplates

У сьогоднішньому блозі я збираюся представити рішення для LuckyTemplates, включаючи просту та узагальнювану структуру для включення коду M у спеціальний стовпець Power Query. Ви можете переглянути повне відео цього підручника внизу цього блогу.

Можливість створювати стовпці в Power Query за допомогою коду M збільшує вашу здатність вирішувати складніші проблеми.

Перш ніж перейти до вирішення, давайте розглянемо суть проблеми. Я надав великий набір даних від Kaggle за 93 роки даних Оскара. Ми хотіли виділити найкращу актрису, переможців і особливо тих жінок, які отримали більше ніж одну нагороду за найкращу жіночу роль, а потім візуалізувати за допомогою шкали часу Queryon рік, у якому вони отримали свою другу нагороду.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Поєднуючи цю проблему, у мене було кілька цілей. На чому ми хочемо зосередити проблему і які основні цілі?

А в цьому їх було троє.

Першим було навчитися або розвивати певну практику роботи з конструкцією Group By і All Rows . Це те, на чому я справді зосереджувався, оскільки воно досить просто вирішує широкий спектр проблем і часто усуває потребу в дуже складному DAX.

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

Згідно з розділом у книзі Гіла Равіва про Power Query, близько 40% проблем у Power Query можна вирішити лише через інтерфейс користувача. Але це, з додаванням базового коду M і можливістю створювати спеціальні стовпці, насправді не так вже й складно. Ви можете збільшити цей відсоток понад 80%. Ви можете подвоїти свої здібності у вирішенні проблем за допомогою деяких основних простих навичок.

Третє, що я хочу зробити, це представити спеціальний візуал Queryon Timeline тим, хто з ним не знайомий. Це той, який я дійсно полюбив. Я використовував його в багатьох різних випадках, і я думаю, що це просто надає справді унікальний спосіб візуалізації даних.

Зміст

Підхід до вирішення проблеми тижня №9

Розмірковуючи над цією проблемою, я хотів провести уявний експеримент. Що, якби замість файлу CSV я просто дав вам 93 аркуші паперу (по одному з переможницею за найкращу жіночу роль кожного року), як би виглядало рішення?

Можливо, ваше рішення виглядатиме приблизно так, як я маю нижче.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Я думаю, що кожен мав би відносно подібне рішення для цього. Коли ви отримаєте це концептуальне рішення, залишиться лише з’ясувати, як змусити Power Query виконувати кожен із цих кроків.

Отже, я просто візьму це як загальний план, а потім розповім, як вони втілюють це концептуальне рішення в щось у Power Query. Підхід, який ми використовуватимемо, Мелісса, наш постійний гуру Power Query, називає навчанням у Google.

Тепер, якщо ми повернемося до нашої концептуальної моделі, то перші два кроки включатимуть сортування листків у групи за актрисами та викидання будь-якої групи з лише одним листком. Отже, ми хочемо зробити підрахунок. Якщо ми не знаємо, як це зробити, ми можемо зайти в Google і спробувати знайти термін. У цьому прикладі я спробував «групувати в потужному запиті». Завдяки цьому ми можемо знайти все, що нам потрібно знати про те, як зробити це групування.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Використання групи за в Power Query

Тоді ми можемо перейти до Power Query і розпочати роботу нашого рішення. Що я зробив, так це те, що в цій таблиці Оскара я щойно переглянув і забрав файл CSV і відфільтрував переможців за найкращу жіночу роль кожного року. Отже, ми маємо лише 93 рядки лише з назви та року фільму.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Якщо ми зайдемо в Power Query і перейдемо до цієї таблиці, перше, що ми хочемо зробити, це Group By .

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

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

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

У нас буде ще один стовпець під назвою «Кількість» , і він нам потрібен, коли ми будемо рахувати рядки . Ми хочемо знайти кількість листків у кожній купці. Потім натискаємо OK.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Потім ми можемо натиснути на цей пробіл у таблиці, і ми отримаємо лише один листок.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

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

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Далі ми хочемо відфільтрувати ті (1). Отже, ми фактично викидаємо на сміття всі ці купи, які мають лише одну назву. Виберіть 1 і натисніть OK.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

І тепер у нас 14 лауреатів кількох нагород. І тепер у нас 14 лауреатів кількох нагород. Якщо ми візьмемо та розширимо це, ми зможемо вилучити Name , оскільки ми вже маємо Name тут і просто залишимо year_film .

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Зараз ми скоротилися до 30 рядків, тому що деякі з них матимуть кілька виграшів. І ми можемо навіть позбутися стовпця «Кількість» , тому що ми вже викинули одиниці лише з одним.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

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

Сортувати легко. Ми можемо повернутися до Power Query і зробити aза актрисою, а потім за датою.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

І він покаже вам один і два.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

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

Включення Table.AddIndexColumn M Код

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

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

У довідковому посібнику Microsoft все згруповано за функціями та є поле фільтра, де ви можете шукати все, що вам потрібно. У цьому випадку ми вводимо ранг або індекс у полі фільтра. Це не дає нам нічого для Rank, але для Index ми маємо цей Table.AddIndexColumn , який є релевантним і застосовним до того, що ми шукаємо. Тут також наведено кілька прикладів використання цієї функції.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

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

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Таким чином, ми отримуємо 14 груп переможців за таблицею. І якщо ми зайдемо в будь-яку з цих таблиць, наприклад, Френсіс Макдорманд, ми побачимо, що таблиця впорядкована за датою.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

І ось великий крок, а саме додавання aспеціальний стовпець і введіть наш код M. Ми матимемо Table.AddIndexColumn , а потім додамо поле AllData . Ми назвемо наш новий стовпець (як текст) як Index , і ми почнемо наш індекс з одиниці (1) і збільшимо його на одиницю (1).

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

І ми отримуємо ідеальний індекс тут.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Тепер ми можемо видалити наш стовпець AllData тут, оскільки все зібрано в. Далі ми можемо просто розгорнути стовпець «Спеціальний», вилучити «Назва», тому що тут у нас також є «Назва». Таким чином, ми маємо нумерований індекс для кожного.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Нарешті, ми можемо зробити те, що ми робили з підрахунком, тобто відфільтрувати всіх, хто виграв другу команду.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

І ось ми йдемо. Ось наше рішення.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Візуалізація за допомогою спеціального візуального елемента Queryon Timeline

Тут є ще кілька речей, які ми хочемо зробити, і всі вони базуються на реалізації Queryon Visual . Ми зробимо об’єднання та просто додамо URL-адресу зображення.

Тож ми об’єднаємо запити, витягнемо таблицю Actresses і об’єднаємо Name . Ми отримуємо 14-14 рядків, що збігаються, що добре.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

А потім у стовпці «Актриси» ми просто розгорнемо його й розгорнемо до URL-адреси.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

І тепер ми маємо цей стовпець із URL-адресами.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Є ще одна річ, яка приходить із знанням шкали часу Queryon. Queryon працює найкраще, коли має справу з повними датами, а не роками . Отже, це те, що приходить лише з експериментами, але ми можемо взяти стовпець Рік і створити стовпець із прикладів . Що ми хочемо зробити тут, це просто перетворити роки на дати.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Це покращить форматування. Це те, чого я не очікую, що ви дізнаєтеся відразу, але це приходить із попрактикацією в Queryon. Ми клацаємо «ОК», і це з’являється як значення дати. Ми можемо видалити таблицю індексів, оскільки вона нам більше не потрібна, а потім змінити назву стовпця year_film на Year .

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

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

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Повертаючись до Power Query для візуалізації, варто згадати, що Microsoft нещодавно внесла деякі зміни в спосіб сертифікації користувацьких візуальних елементів . У рамках цієї сертифікації вони посилили використання зовнішніх зображень URL-адрес.

Якщо ви справді використовуєте версію Queryon Timeline, яка є в програмному коді (версія 1.05), ви не зможете отримати ці URL-зображення. Отже, тепер у вас є можливість використовувати цю версію 1.04, зберігаючи URL-зображення, де на їхньому сайті є спосіб вставляти двійкові 64 зображення безпосередньо у файл PBIX.

Тепер я згадав про зміну цього року в поле дати, тому нам потрібно підключити це до нашої моделі даних.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

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

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Далі для поля URL-адреси зображення потрібно переконатися, що в категорії «Дані» воно відображається не як Без категорії, а як.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates

Тепер, коли ми все добре підготували, ми просто перетягуємо поля Name , Date та URL . Решта стає дійсно простим очищенням у параметрах формату.

Код M у спеціальних стовпцях Power Query |  LuckyTemplates




Висновок

Сподіваюся, я зацікавив вас додаванням коду М до свого репертуару. Я показав вам, як створити концептуальну модель і реалізувати підхід «Навчання за допомогою Google». Я провів вас через кроки з додавання коду M до спеціального стовпця та візуалізації результатів за допомогою Queryon Timeline.

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

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


Поле пошуку PowerApps: як додати та налаштувати

Поле пошуку PowerApps: як додати та налаштувати

Дізнайтеся, як створити поле пошуку PowerApps з нуля та налаштувати його відповідно до загальної теми вашої програми.

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

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

Історія версій у списках SharePoint

Історія версій у списках SharePoint

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

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

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

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

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

Таблиці пропорцій і частот в Excel

Таблиці пропорцій і частот в Excel

Збирався зануритися в частотні таблиці в Excel, а також у таблиці пропорцій. Добре подивіться, що це таке і коли їх використовувати.

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Дізнайтеся, як завантажити та інсталювати DAX Studio та Tabular Editor 3 і як налаштувати їх для використання в LuckyTemplates і Excel.

Візуалізація карти форми LuckyTemplates для просторового аналізу

Візуалізація карти форми LuckyTemplates для просторового аналізу

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

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

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

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

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