Віртуальний стіл LuckyTemplates | 5 порад і підказок щодо налагодження

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

У цьому підручнику я збираюся поділитися моїми 5 найкращими порадами та підказками, які я накопичив протягом багатьох років і які дійсно допомогли мені зрозуміти та налагодити те, що відбувається у віртуальних таблицях Power Bi.

Приклад, який я сьогодні розгляну, походить із, і це надійшло від учасника на ім’я Дейв Сі, який працює в галузі промислової безпеки. У Дейва була серія оцінок безпеки, і він хотів нормалізувати їх так, щоб найкраща оцінка була 10, а потім динамічно прийти до N-го у цьому списку.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

Спочатку ми думали зробити це за допомогою простогоале пізніше ми зрозуміли, що багато його нормалізованих значень мають зв’язки. Наприклад, якщо вам потрібен сьомий елемент у списку, у RANKX не буде числа сім. Немає простого способу вивести це з умов фільтра. Тому ми вирішили вибрати aна основі міри, щоб вона завжди відраховувала n-е число.

Це схоже на те, коли ви витягуєте сьому карту з колоди, ви відраховуєте сім карт, а потім перегортаєте стопку з семи карт, і карта внизу є тією, що вам потрібна. Ми збираємося зробити еквівалент цього в вимірюванні TOPN.

Зміст

Порада №1: використовуйте зовнішній інструмент для візуалізації вашої віртуальної таблиці LuckyTemplates

Ви можете використовувати DAX Studio або табличний редактор. У цьому прикладі я використовую табличний редактор 3 (TE3). Технічно це можливо зробити за допомогою вкладки «Моделювання – нова таблиця», але це дозволить створити фізичні таблиці у вашій моделі даних. Вам доведеться вручну перемикатися між цим і редактором, і це просто повільний і важкий спосіб зробити це.

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

Тому в TE3 ми створюємо новий запит DAX. Ми можемо взяти наш початковий показник і скопіювати його в наш запит DAX.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

Якщо ви пам’ятаєте, запити DAX завжди починаються з EVALUATE . Спочатку ми отримаємо помилку, оскільки запити DAX повертають таблиці . Це була міра з двома останніми змінними, які є скалярами. Що ми можемо тут зробити, так це змінити значення, що повертається , і це моя наступна порада.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

Порада №2: налагодьте свою віртуальну таблицю LuckyTemplates частинами за допомогою змінних

Ви можете налагоджувати віртуальні таблиці майже так само, як ви це робите з мірками – частина за частиною, змінюючи значення, що повертається. Почнемо з першої віртуальної таблиці vEvalTable . Ми просто замінюємо значення RETURN (Final) нашою першою змінною (VAR). Ви бачите, що помилка зникає, оскільки запит DAX тепер отримує таблицю.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

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

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

Це дає нам саме те, чого ми очікували. Він повертає 50 рядків, що є повним набором даних. Усе йде добре, тож давайте підемо вниз і дослідимо наступну таблицю, яка є vTableTopN . У цій таблиці ми беремо TOPN за допомогою значення повзунка n-го елемента. У цьому прикладі ми маємо сьоме значення віртуальної таблиці вище (vEvalTable), і ми беремо це TOPN на основі нормалізованого значення в порядку спадання.

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

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

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

Отже, у цьому випадку, коли ми розглядаємо налагодження цієї таблиці поза контекстом, це вибране значення не має контексту навколо нього . Це не має нічого з точки зору можливості витягнути це число. Ми отримували TOPN, але не знаємо, що таке N у TOPN, оскільки вибране значення повертає порожнє значення.

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

Порада №3: ​​використовуйте альтернативний параметр у SELECTEDVALUE

Що сталося тут, це те, що він тягнув бланк як альтернативний. Але те, що ми хочемо зробити (з метою налагодження), це те, що ми хочемо помістити тут реальне значення . Отже, ми ставимо число 7 і зберігаємо це.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

Тепер ми маємо певні цінності. Він повертає сім рядків, і це саме те, що має бути через значення TOPN, яке дорівнює семи.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

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

Якщо ми візьмемо та скопіюємо це в розділ RETURN, ми отримаємо результати. Цікаво, що він не повертає один рядок. Він повертає три рядки, оскільки ці три зв’язані. Саме тому в даному випадку ми використовуємо TOPN, а не RANKX.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

Тепер перейдемо до Результату . Якщо ми скопіюємо результат VAR у розділ RETURN, це дійде до моєї четвертої підказки.

Порада №4: використовуйте { }, щоб перетворити скаляри на таблиці

У формулі ми беремо максимум () цього vTableNthItem, і ми повертаємо нормалізоване значення. Це може бути, це може бути, це може бути. Це просто якийсь агрегатор, який повертає одне значення в цій таблиці. Отже, якщо ми скопіюємо це вниз, це дасть нам помилку, тому що це тепер скаляр.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

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

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

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

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

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

Порада №5: використовуйте CONCATENATEX/UNICHAR, щоб перетворити таблицю на скалярну

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

Давайте подивимося на цей показник, який є Visualized Virtual Table , і ми маємо тут усі віртуальні таблиці, які у нас були спочатку. Наприклад, ми хочемо відобразити, скажімо, на головній сторінці звіту vTableTopN.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

Ви можете використовувати цефункція. Ви фактично можете взяти цю назву віртуальної таблиці (vTableTopN), взяти значення в цій таблиці та об’єднати їх. Ви можете створити щось, що в основному виглядає як віртуальний стіл.

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

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

Віртуальний стіл LuckyTemplates |  5 порад і підказок щодо налагодження

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




Висновок

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

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

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


Поле пошуку 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, використовуючи наявні показники або формули. Це те, що я називаю технікою розгалуження міри.