Що таке дашборд: види, приклади та як бізнес використовує дашборди для прийняття рішень
Більшість знають Флоренс Найтінгейл як медсестру....
Читати більше Що таке дашборд: види, приклади та як бізнес використовує дашборди для прийняття рішень
DAX відповідає за розрахунки всередині моделі Power BI. Розбираємо базові функції, часову аналітику, типові помилки та готові формули для бізнес-звітів.
Коли водій після років на автоматі сідає за кермо механіки, знайомі рухи раптом перестають працювати. Схожа ситуація з Excel і Power BI: функції SUM, IF чи FILTER знайомі, але логіка розрахунків інша. DAX формули в Power BI працюють із контекстом рядків і фільтрів — саме це потребує зміни звичного підходу.
У гайді розберемо, що таке DAX, чим він відрізняється від Power Query, які функції потрібні насамперед і де виникають типові помилки. Матеріал підійде як DAX для початківців, так і для аналітиків з досвідом.
DAX — це мова формул і виразів Microsoft для Power BI, Analysis Services та Power Pivot в Excel. За допомогою DAX створюють міри, обчислювані стовпці й таблиці. Результат розрахунку залежить від структури моделі та контексту, у якому виконується формула.
Excel-формули зазвичай звертаються до комірок і діапазонів, тоді як DAX формули працюють із таблицями та стовпцями моделі. Наприклад, міра з SUM перераховується відповідно до поточних фільтрів звіту.
Навіщо потрібен DAX аналітику:
Якщо компанія використовує Power BI для бізнесу, DAX потрібен для власних метрик і розрахунків, що змінюються разом із фільтрами звіту.
Power Query готує та перетворює дані до завантаження в модель, а DAX виконує розрахунки вже всередині моделі.
| Критерій | Power Query | DAX |
|---|---|---|
| Коли працює | На етапі завантаження та підготовки даних | У моделі даних: обчислювані стовпці та таблиці розраховуються під час оновлення даних, а міри — під час роботи зі звітом. |
| Що робить | Очищує, фільтрує, об'єднує таблиці з різних джерел | Виконує розрахунки в моделі даних: створює міри, обчислювані стовпці і таблиці. |
| Мова | M (Power Query M) | DAX (Data Analysis Expressions). |
| Результат | Нова таблиця або стовпець у моделі | Залежить від типу розрахунку: міра змінює результат відповідно до поточних фільтрів, а обчислювані стовпці та таблиці зберігають розраховані значення в моделі. |
| Приклад задачі | Об'єднати дані з CRM і Excel-файлу в одну таблицю | Порахувати частку повторних клієнтів від загальної кількості |
Power Query відповідає за підготовку даних, а DAX функції — за розрахунки в моделі. Синтаксично правильна DAX-формула все одно може дати хибний результат через помилку в логіці, зв’язках або контексті.
DAX функції не потрібно вчити всі одразу. Для початку важливіше опанувати базові функції та зрозуміти, як контекст впливає на розрахунок.
CALCULATE — одна з ключових DAX функцій: вона обчислює вираз у зміненому контексті фільтрації.
Базовий синтаксис:
CALCULATE(<вираз>, <фільтр1>, <фільтр2>, …)
Приклад: потрібно порахувати продажі категорії «Електроніка», навіть якщо через поле Product[Category] у звіті вибрана інша категорія:
Продажі Електроніки = CALCULATE(SUM(Sales[Amount]), Product[Category] = “Електроніка”)
CALCULATE замінить поточний фільтр на Product[Category], але фільтри за періодом, регіоном тощо продовжать діяти. Це один із базових принципів написання складніших DAX формул.
SUM — найпростіша агрегатна функція, вона підсумовує значення одного стовпця:
Загальна сума = SUM(Sales[Amount])
Для розрахунків, де вираз потрібно виконати для кожного рядка, використовують ітеративні функції SUMX, AVERAGEX, COUNTX. Вони обчислюють вираз рядок за рядком, а потім агрегують результат.
Класичний приклад — розрахунок виручки, коли ціна і кількість зберігаються в різних стовпцях:
Виручка = SUMX(Sales, Sales[Кількість] * Sales[Ціна])
У цьому прикладі SUM не підходить, оскільки потрібно спочатку перемножити значення в кожному рядку.
DAX функції дати використовують для порівняння періодів, наприклад місяць до місяця, рік до року або для наростаючого підсумку.
Ці функції зазвичай використовують усередині CALCULATE, щоб на основі отриманого набору дат розрахувати потрібний показник.
Приклад формули для порівняння продажів рік до року:
Продажі минулого року = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date]))
Такі формули в Power BI використовують у KPI-дашбордах для автоматичного порівняння показників між періодами.
Для класичної часової аналітики потрібна окрема таблиця дат з унікальними значеннями без пропусків і порожніх значень, яка охоплює повні роки та позначена в Power BI як таблиця дат.
Якщо ви тільки вчитеся, як писати DAX формули, варто насамперед розібратися з помилками, які безпосередньо впливають на результат розрахунків. Ось найпоширеніші DAX помилки та як їх уникнути.
Нижче кілька DAX формул для типових бізнес-звітів:
Частка повторних клієнтів:
% Повторних клієнтів = VAR ПовторніКлієнти = FILTER( VALUES(Sales[ClientID]), CALCULATE(DISTINCTCOUNT(Sales[OrderNumber])) > 1 ) RETURN DIVIDE( COUNTROWS(ПовторніКлієнти), DISTINCTCOUNT(Sales[ClientID]) )
Повторним тут вважається клієнт з більш ніж одним унікальним замовленням у поточному контексті звіту.
Наростаючий підсумок продажів з початку року:
Продажі YTD = TOTALYTD(SUM(Sales[Amount]), Calendar[Date])
Динаміка відносно минулого місяця (у %):
Продажі минулого місяця = CALCULATE( [Загальна сума], PREVIOUSMONTH(Calendar[Date]) )
Динаміка MoM % = DIVIDE( [Загальна сума] – [Продажі минулого місяця], [Продажі минулого місяця] )
ТОП-N товарів за виручкою (для рейтингових візуалів):
Ранг товару = RANKX(ALL(Product[Назва]), [Виручка], , DESC)
Щоб отримати саме ТОП-N товарів, після розрахунку рейтингу потрібно застосувати до візуалізації відповідний фільтр, наприклад Ранг товару <= 10.
Активні клієнти за останні 90 днів:
Активні клієнти 90д = CALCULATE( DISTINCTCOUNT(Sales[ClientID]), DATESINPERIOD(Calendar[Date], MAX(Calendar[Date]), -90, DAY) )
Серед проєктів IWIS з бізнес-аналітики є рішення для Планети Кіно, Helen Marlen, BAT, Swiss Krono та інших компаній. У складних моделях Power BI бізнес-логіка часто виходить далеко за межі базових SUM і CALCULATE.
Типова послідовність роботи команди над DAX-моделлю:
Якщо DAX формули дають неправильний результат, дашборд працює повільно або показники не сходяться, перевіряти потрібно модель, зв’язки, фільтри, бізнес-логіку та самі формули.
На безкоштовній консультації команда IWIS:
Залиште заявку на безкоштовну консультацію — обговоримо вашу модель даних і розрахунки.
Залишити заявкуDAX (Data Analysis Expressions) — мова формул для розрахунків у Power BI. DAX працює з таблицями, стовпцями та зв’язками моделі даних, а результат мір змінюється залежно від поточних фільтрів звіту.
DAX дозволяє створювати власні бізнес-метрики: наприклад, розраховувати маржинальність, порівнювати показники між періодами або будувати наростаючий підсумок. Power BI може працювати і без власних DAX-формул, але DAX у Power BI потрібен для розрахунків, яких немає у вихідних даних і які мають змінюватися залежно від фільтрів звіту.
Обчислюваний стовпець розраховується під час оновлення даних, а його значення зберігаються в моделі. Міра обчислюється під час роботи зі звітом і реагує на поточні фільтри, наприклад на вибраний регіон або період. Для динамічних показників зазвичай використовують міри, а обчислювані стовпці потрібні для розрахунків на рівні окремих рядків.
Достатньо впевнено володіти базовим набором: CALCULATE (зміна контексту фільтрів), SUM і SUMX (агрегація), DIVIDE (безпечне ділення) та функціями часової аналітики — SAMEPERIODLASTYEAR, DATESYTD, TOTALYTD.
CALCULATE обчислює вираз після зміни умов фільтрації. Наприклад, за її допомогою можна порахувати продажі певної категорії, замінивши поточний фільтр саме на категорію товару, але зберігши інші фільтри звіту. Тому розуміння CALCULATE потрібне для побудови багатьох складніших DAX формул.
DAX для початківців варто починати з базових агрегатних функцій SUM, AVERAGE і COUNT, потім перейти до DIVIDE та CALCULATE, а після цього — до функцій часової аналітики. Для класичних розрахунків за періодами потрібно також створити й правильно налаштувати окрему таблицю дат.
Більшість знають Флоренс Найтінгейл як медсестру....
Читати більше Що таке дашборд: види, приклади та як бізнес використовує дашборди для прийняття рішень