Що таке Power Query та мова M: детальний огляд
Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.
Багато людей вважають, що ми не можемо виконувати спеціальне сортування за допомогою DAX , але це не так. DAX абсолютно гарантує сортування, і це насправді досить просто зробити. У сьогоднішньому блозі я покажу вам, як легко це зробити. Ви можете переглянути повне відео цього підручника внизу цього блогу.
Зміст
Наша модель даних
Почнемо з простої моделі даних. Наша таблиця даних містить три кампанії, проаналізовану рентабельність інвестицій і вартість.
Як ви можете бачити в таблиці, вони мають однакові витрати, але рентабельність інвестицій різна. Концепція тут полягає в тому, щоб знати, які кампанії ми повинні запускати залежно від їх рентабельності інвестицій для певного бюджету.
Настроюване сортування LuckyTemplates: використання циклу While
Почнемо з вимірювання за допомогою простого циклу while.
Ми встановимо наш бюджет на рівні 20000 і збережемо його в змінній Budget за допомогою _Budget.
Потім ми використаємо цикл while, створивши змінну таблиці VAR_Table .
Потім використовуємоякі суперечать нашій базовій таблиці 4 і додають стовпець поточної суми за допомогою «_RT» .
Далі ми беремо [Analyzed ROI] у нашому поточному рядку, збереженому як VAR_ROI . Потім ми беремо наш бюджет . З нього ми віднімаємо, відфільтруйте таблицю 4 для проаналізованої рентабельності інвестицій, яка перевищує або дорівнює рентабельності інвестицій, яку ми захоплюємо для нашого поточного рядка, і захопіть [Вартість] .
Ці рядки отримають найвищу рентабельність інвестицій у першому рядку, потім наступну найвищу для наступного рядка і так далі. Отже, по суті, ми матимемо стовпець, який є поточним загальним відліком до нуля в мінусах.
Потім ми виходимо з циклу while. Ми створюємо нашу змінну FinalTable за допомогою VAR_FinalTable , де ми просто фільтруємо нашу змінну Table для поточного підсумку , який більше або дорівнює нулю. Ми застосовуємо цей фільтр, тому що все, що нижче нуля, означає, що ми стали негативними, і ми вичерпали бюджет.
Тоді ми можемо використовувати для цих значень. Ми додамо наші стовпці — «Кампанії», «Аналізована рентабельність інвестицій» і «Вартість» — і додамо .
Ми можемо показати цю картку на панелі вибору та побачити, що у нас є Instagram і SEM, які є нашими двома найвищими показниками ROI.
Давайте перевіримо нашу початкову таблицю, щоб порівняти результати.
Ми бачимо, що PPC справді має нижчу рентабельність інвестицій, ніж SEM та Instagram.
Однак, як ви могли помітити, наш результат не повернувся в правильному порядку: 8.1 Instagram відображався спочатку перед 8.15 SEM.
Застосування порядку сортування LuckyTemplates
Але що, якщо ми хочемо, щоб Instagram був повернутий першим, оскільки він має найвищу рентабельність інвестицій і SEM, щоб повернути другий? По суті, ми хочемо гарантувати порядок сортування. Це стає трохи складніше, але неважко зрозуміти, як це зробити.
Ось як має виглядати наша функція, при цьому нижня частина буде такою ж, як цикл while, який ми мали раніше.
І щоб гарантувати порядок сортування, нам потрібно трохи попрацювати.
Знову ж таки, ми починаємо з нашого VAR_Budget , який ми встановлюємо на 20000. Потім ми створюємо нашу змінну Count за допомогою VAR_Count I і застосовуємо її до таблиці 4.
У наступному рядку ми використаємо функцію CONCATENATEX , щоб об’єднати стовпці Campaigns, Analyzed ROI та Cost. Ви можете використовувати будь-що як роздільник, якщо це не у ваших даних, тому в цьому випадку давайте просто використаємо зірочки.
Потім ми використаємо вертикальну риску (|) у наступному параметрі після стовпця вартості. Ми також використовуватимемо VAR_Ordered для сортування за проаналізованою ROI у порядку спадання, тобто найвища ROI буде вгорі.
Якщо ми подивимося на рядок коментаря, там сказано, що код дасть нам результат у форматі SEM*8.158*10000 | Instagram*8.1*10000 . Він також вийде в порядку від найвищої ROI до найнижчої ROI.
Спеціальне сортування LuckyTemplates: використання циклу For
Цей приклад цікавий, оскільки ми отримуємо цикл while і всілякі цікаві функції. Цього разу ми використаємо цикл for .
Таблиця1
У цьому прикладі Table1 є нашим циклом for, і те, що ми робимо, це ADDCOLUMNS доякий переходить від одиниці до нашого рахунку через одиницю, записану як (1,_Count,1).
У нашому рядку ми потім використовуємотому що ми використовуємо символ вертикальної лінії, щоб розділити рядки нашої таблиці. Використовуючи PATHITEM , ми потім отримуємо шлях із змінної Ordered , яка є нашим рядком.
Ми також використовуємо Value , який є нашим автоматичним стовпцем, створеним за допомогою GENERATESERIES , або нашими календарями 1, 2, 3, 4, 5, доки ми не вичерпаємо кількість рядків у нашій таблиці. Потім ми повертаємо його як Text .
Тепер ми маємо гарантований порядок сортування для нашої таблиці, який йде від найвищої ROI до найнижчої. Отже, ось ваш DAX для гарантування порядку сортування.
Таблиця2
Тепер, щоб отримати це у зручному для використання форматі, ми маємо зробити Таблицю 2 , де ми виберемо окремі стовпці з нашого рядка, який у нас є.
Давайте скористаємося ще одним ADDCOLUMNS , щоб додати до таблиці1 наш цикл for. Для кампаній створіть стовпець кампаній і використовуйтезамінити зірочки на труби. Потім ми використаємо PATHITEM на RowPath, щоб отримати перший елемент і повернути його як TEXT.
У стовпці «Аналізована рентабельність інвестицій» ми зробимо те ж саме. ЗАМІНИТИ зірочки з трубами. Потім візьміть другий елемент на нашому шляху та поверніть його як ТЕКСТ. Ми робимо це тому, що з певних причин PATHITEM дозволяє повертати як цілі числа або текст, але не десяткові числа.
Це трохи дивно, але ми можемо це вирішити, оскільки все, що нам потрібно зробити, це додати нуль, і DAX автоматично перетворить рядок TEXT на числове значення.
Знову ми робимо те саме для стовпця Вартість . Ми використовуємо SUBSTITUTE і PATHITEM , щоб захопити третій елемент. Потім, щоб повернути число, ми знову додаємо нуль, оскільки в цьому випадку це ціле число.
Решта нашого коду — це цикл while, який ми обговорювали раніше. Тепер ми отримуємо наш гарантований порядок сортування від найвищої до найнижчої кампанії.
Наша SEM була нашим найвищим рейтингом ROI для нашої кампанії, а Instagram займає друге місце.
Висновок
Використовуючи цикли while і for, ми успішно застосували спеціальне сортування LuckyTemplates у нашій моделі даних на основі їхньої рентабельності інвестицій — доказ того, що DAX точно може гарантувати порядок сортування.
Важливо переконатися, що ваші дані правильно відсортовані в DAX, щоб точно аналізувати та візуалізувати їх. Ви можете застосувати те, що ви дізналися в цьому підручнику, щоб належним чином сортувати дані для наступного звіту.
Все найкраще,
Грег Деклер
Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.
Дізнайтеся, як створити звіт із розбивкою на сторінки, додати тексти та зображення, а потім експортувати звіт у різні формати документів.
Дізнайтеся, як використовувати функцію автоматизації SharePoint для створення робочих процесів і допомоги в мікрокеруванні користувачами, бібліотеками та списками SharePoint.
Відточіть свої навички розробки звітів, приєднавшись до змагання з аналізу даних. Прискорювач може допомогти вам стати суперкористувачем LuckyTemplates!
Дізнайтеся, як обчислювати поточні підсумки в LuckyTemplates за допомогою DAX. Поточні підсумки дозволяють вам не потрапити в окремий результат.
Зрозумійте концепцію змінних у DAX у LuckyTemplates і значення змінних для обчислення показників.
Дізнайтеся більше про настроюваний візуал під назвою LuckyTemplates Slope chart, який використовується для показу зростання/зменшення для одного чи кількох показників.
Відкрийте для себе кольорові теми в LuckyTemplates. Це необхідно для того, щоб ваші звіти та візуалізації виглядали та працювали без проблем.
Розрахувати середнє значення в LuckyTemplates можна кількома способами, щоб отримати точну інформацію для ваших бізнес-звітів.
Давайте заглибимося в стандартну тематику LuckyTemplates і розглянемо деякі функції, вбудовані в саму програму LuckyTemplates Desktop.