DAX - мова формул (розшифровується як
Коротко кажучи, DAX - це формули для зведених таблиць. Більшість функцій DAX мають схожі імена та характеристики порівняно зі звичайними функціями Excel, проте можуть використовуватись лише в PowerPivot. Як відомо, звичайні Зведені таблиці можуть містити розрахункові поля (аналог
В цілому, DAX не є складною мовою, як може здатися на перший погляд, потрібно лише зрозуміти принципи її роботи. Різниця між формулами Excel та формулами DAX полягає в тому, що в Excel ми оперуємо окремими комірками та діапазонами, а в DAX можемо звертатися лише до цілих таблиць та їхніх колонок.
Для початку роботи з DAX кодом, нам потрібно встановити PowerPivot для Excel 2010 або перейти на однойменну вкладку у Excel 2013.
Як і в Excel функції DAX відносяться до певних категорій, а саме:
В PowerPivot користувач може створювати розрахункові поля двох типів:
Одні й тіж формули можуть вести себе по-різному, в залежності від того, використовуються вони в розрахунковому стовці чи в мірі. Якщо формула використовується в розрахунковому стовпці, вона застосовується до кожного рядка стовпця по всій таблиці. Значення може залежати від контексту рядків. У мірі результат обчислень ще більше залежить від контексту. Це означає, що конструкція зведеної таблиці та вибір заголовків рядків і стовпців впливають на значення, які використовуються в обчисленнях.
Тобто, іншими словами, коли ми створюємо Зведену таблицю, то:
В мові DAX присутнє також таке поняння як контекст, яке є дуже важливим для розуміння функіонування формул. На формули в PowerPivot можуть впливати фільтри, застосовані в зведеній таблиці, зв'язки між таблицями і фільтри, наявні у формулах. Контекст дозволяє виконувати динамічний аналіз. При побудові та усуненні неполадок у формулах важливо розуміти призначення контексту.
Отже, в DAX існують три типи контексту: контекст фільтра, контекст рядка та контекст запиту.
Контекст фільтра - це набір значень, дозволених в кожному стовпці залежно від обмежень фільтра, які застосовуються до рядка або які визначені критеріями фільтра у формулі.
Контекст рядка - фактично відповідає поняттю поточного рядка. Якщо створений обчислюваний стовпець, то контекстом рядка служать значення в кожному окремому рядку і значення в стовпцях, пов'язаних з поточним рядком.
Контекст запиту - відноситься до підмножини даних, які неявним чином створюються для кожної комірки зведеної таблиці в залежності від заголовків рядка і стовпця в зведеній таблиці (конструкції макету Зведеної таблиці).