Home
» Power BI
»
Виправлення неправильних підсумків за допомогою показників DAX у LuckyTemplates
Виправлення неправильних підсумків за допомогою показників DAX у LuckyTemplates
Отримання правильних підсумків у звітах LuckyTemplates іноді може бути найбільш неприємною справою під час використання заходів DAX . Ймовірно, ви можете потрапити в певні ситуації, коли ваші показники Totals for DAX не складаються так, як ви хочете. Ви можете переглянути повне відео цього підручника внизу цього блогу.
Показники DAX можуть базуватися на стандартних функціях агрегації, таких як COUNT або SUM . Ці формули DAX дозволяють виконувати моделювання та аналіз даних і використовувати результати для звітування та прийняття рішень.
У цьому блозі ми обговоримо загальну логіку вимірювань DAX . Це занепокоєння було піднято в. Якщо ви хочете переглянути запитання та переглянути точний сценарій із форуму, просто клацніть надане посилання нижче.
Я покажу вам техніку, яка була використана для вирішення сценарію.
Звичайно, ви можете застосувати цю техніку до різних сценаріїв, особливо під час створення досить складної логіки DAX або під час розгалуження кількох заходів. Це також допоможе вам розрахувати загальні суми, які можуть обчислюватися неправильно .
Ось загальний приклад, який так чи інакше пов’язаний із обговорюваним сценарієм на форумі.
Тепер ми дивимося на результат продажів у цій таблиці. Крім того, я порівнюю його з іншим результатом, яким є продажі за минулий рік .
У цьому прикладі ми намагаємося дізнатися мінімальний результат для кожного клієнта на основі вибраного контексту. Це може бути будь-який показник, наприклад MIN Total Sales і(у цьому випадку ми будемо використовувати загальні).
Швидше за все, ви подумаєте, що формула із зображення нижче дасть нам відповідні результати.
Що ж, давайте перетягнемо міру в таблицю і перевіримо результати.
Дивлячись на результати, можна сказати, що всі розрахунки для кожного рядка були точними.
Однак він неправильно розрахував загальну суму .
Він лише обчислював мінімальну суму за допомогою функції MIN для кожного рядка в межах показників Total Sales і Sales LY , коли немає контексту для кожного обчислення.
Крім того, він не підраховував окремі мінімуми унікальним способом і не отримував суму всіх цих унікальних мінімумів через будь-який контекст, у якому ми перебуваємо.
Аналіз правильних результатів для прикладу сценарію
Тепер дозвольте показати вам відповідні результати для попереднього сценарію.
Ви побачите на зображенні, що він показує зовсім інший результат, оскільки він, очевидно, набагато менший, ніж усі інші суми.
Це має набагато більше сенсу , оскільки ми в основному підраховуємо лише мінімуми кожного окремого рядка в цій таблиці . Отже, це означає, що значення результату буде набагато меншим .
Основна логіка, яку нам тут потрібно зрозуміти, полягає в оцінці кожного окремого результату за допомогою віртуальних таблиць .
Ітерація віртуальних таблиць дає змогу переконатися, що реалізована вами логіка повторює правильний контекст для загальної суми порівняно з будь-яким природним контекстом, який може виникнути через вибір, зроблений на сторінці звіту .
Якщо ви зможете почати розуміти, як інтегрувати віртуальні таблиці у свої функції DAX , ви швидко побачите можливості ще більше розширити аналіз.
Створення віртуальних таблиць у вимірниках DAX
Тепер, щоб вирішити поточний сценарій, перше, що нам потрібно зробити, це створити віртуальну таблицю кожного окремого клієнта за допомогою функції SUMMARIZE .
Функція SUMMARIZE повертає зведену таблицю для запитаних підсумків для набору груп.
Потім у цій конкретній віртуальній таблиці , яку ми збираємося переглянути, виділені стовпці із зображення нижче будуть створені віртуально.
Підсумовування MIN кожного рядка у віртуальній таблиці
Коли ми дійдемо до фази оцінювання, ми будемо використовувати SUMX . Ця функція повертає суму виразу, яка обчислюється для кожного рядка таблиці.
У нашому випадку функція SUMX підсумовує MIN результат кожного окремого рядка віртуальної таблиці, яку ми створили.
І ось як ми отримали правильні результати.
Ще одна цікава річ у цьому полягає в тому, що віртуальна таблиця також працює для кожного окремого рядка . Це означає, що ця таблиця матиме лише один рядок.
Це пояснюється тим, що цей фільтр буде застосовано лише віртуально у формулі , а ідентифікатор клієнта у функції SUMMARIZE матиме відношення лише до контексту клієнта, у якому ми перебуваємо.
І це просто те, як ви можете вирішити цей конкретний сценарій.
Висновок
Підводячи підсумок, ключем до розуміння того, як обчислюються підсумки, є глибоке вивчення того, як працює контекст у LuckyTemplates.
Цю техніку, безперечно, можна використовувати, оскільки є багато ситуацій, коли загальні суми просто не відповідають тим, що ви думаєте або якими вони повинні бути. Наприклад, ви дійсно можете отримати загальну суму, але не знаєте, що вона насправді обчислюється неправильно.
Головне, що вам потрібно, щоб ця техніка працювала правильно, це розуміти методологію віртуальної таблиці . Вам потрібно ефективно інтегрувати ці віртуальні таблиці в заходи DAX , щоб переконатися, що вони отримують бажані результати.
Це допоможе вам вирішити не лише ту, над якою ви зараз працюєте, але й інші майбутні проблеми, з якими ви можете зіткнутися під час виконання обчислень у ваших моделях LuckyTemplates.
Це досить багато для застосування та реалізації у вашому власному середовищі. Ось чому вбудовування цих концепцій у ваш розум є вирішальним.
Для отримання більш просунутих методів DAX, які можна використовувати в LuckyTemplates, перегляньте цей модуль на LuckyTemplates Online –.