DAX — язык запросов, который используют в анализе данных. С помощью него обрабатывают большие объёмы информации, проводят сложные расчёты, создают дашборды.
В статье Андрей Чепурной, руководитель команды Power BI департамента аналитических решений «КОРУС Консалтинг», рассказывает, как устроен DAX и какие задачи решают с его помощью. Материал будет полезен начинающим BI-аналитикам, а также всем специалистам, которые работают с данными.
В статье нет подробных инструкций по работе с DAX: она даёт общее представление о работе с языком. Мы говорим о базовых понятиях и принципах DAX.
DAX (Data Analysis Expressions) дословно переводится как «выражения для анализа данных». Это язык, с помощью которого составляют функции и формулы в программах для аналитики.
DAX разработала компания Microsoft. Этот язык входит в состав её программ для бизнес-аналитики и анализа данных — Power BI, Analysis Services и надстройки Power Pivot для Excel.
Основная цель DAX — помочь выполнить сложный анализ и комплексные расчёты в случаях, когда задействовано много данных.
Например, с помощью DAX можно создавать формулы для автоматического расчёта общей выручки бизнеса, среднего чека, процентного изменения числа продаж. Или проанализировать, какие товары популярны в разных регионах и как со временем меняются предпочтения покупателей.
Важно понимать, что DAX — не язык программирования, а функциональный язык. Это означает, что на нём не пишут программы или макросы — как это делают, например, на Python, Java или VBA. С помощью DAX создают запросы для проведения расчётов и анализа данных.
Вот как это работает. Пользователь пишет на языке DAX запрос, который будет применяться к выбранному объёму данных. Этот запрос определяет, какие операции нужно провести с данными — например, сделать фильтрацию и расчёт. Программа проводит их. Дальше можно создавать интерактивные отчёты на основе данных, полученных в результате этих операций, строить графики и анализировать полученную информацию.
При этом DAX учитывает связи между данными. Если первоначальные данные изменятся, DAX сам пересчитает результат и покажет актуальную информацию.
С DAX чаще всего работают специалисты, которые занимаются аналитикой. В разных компаниях это могут быть аналитики данных, бизнес-аналитики, финансовые аналитики, маркетологи и BI-разработчики. В следующем разделе разберём, какие задачи они решают с помощью DAX.
DAX даёт много возможностей для анализа данных и других операций с ними в разных сферах бизнеса. Основные функции DAX — собрать данные из разных источников, отфильтровать их и провести вычисления, которые требуются пользователю для создания отчётов.
Вот несколько сценариев использования DAX:
В общих чертах DAX-запросы работают аналогично обычным формулам Excel. Они также состоят из функций, операторов и значений. Но, в отличие от Excel, DAX работает не с отдельными ячейками, а со столбцами, то есть выполняет разные запросы — расчёты, фильтрацию и так далее — одновременно со значениями всего столбца.
Чтобы работать с DAX, важно понимать ключевые термины: меры, вычисляемые столбцы, вычисляемые таблицы, контекст и связи. Давайте разберёмся.
Меры (Measures). По-другому их называют метриками. Это выражения, с помощью которых проводят разные вычисления. Например, можно создать меру для подсчёта общей прибыли или среднего значения. В результате появляется новое значение, которое затем используют при других расчётах или при визуализации.
Вычисляемые столбцы (Calculated columns). Выражения, которые проводят вычисления для каждой строки в таблице и создают новый столбец с результатами. Их можно использовать, например, для автоматического расчёта суммы заказов каждого клиента в базе данных. Вычисляемый столбец проведёт построчный расчёт отдельно для каждого покупателя и вынесет итоговые суммы в новый столбец.
Вычисляемые таблицы (Calculated tables). Таблицы, которые полностью генерируются с помощью DAX-формул. Их используют, когда нужно создать временную таблицу для отдельного анализа данных или собрать промежуточные данные, которые потребуются для дальнейших расчётов. Например, с помощью вычисляемой таблицы можно собрать список клиентов, которые делали повторные покупки в последний месяц. Это позволит проанализировать группу клиентов отдельно, не меняя при этом структуру исходной таблицы.
Контекст (Context). Элемент DAX, который определяет, какие данные участвуют в расчётах. Есть два вида контекста — контекст строки и контекст фильтра.
Связи (Relationships). Это способ объединить данные из нескольких таблиц. Допустим, есть две таблицы: одна с информацией о клиентах, другая — с информацией о заказах от этих клиентов. Между таблицами можно установить связь по значению, которое повторяется и в первой, и во второй таблице, — например, по уникальному номеру клиента. С помощью такой связи можно будет найти все номера заказов клиента или рассчитать общую сумму его покупок. Связи позволяют увидеть полную картину и провести более глубокий анализ.
Обычно работа с DAX проходит в четыре этапа:
1. Загрузить данные. Пользователь загружает в программу данные из разных источников. Например, из электронных таблиц, текстовых файлов, баз данных, веб-сайтов и так далее.
2. Моделировать данные. Для этого устанавливают связи между разными таблицами и создают из них общую модель. Цель этого этапа — связать данные таблиц в общей структуре и определить, каким образом данные из одной таблицы будут взаимодействовать с данными из других таблиц.
3. Создать меры, вычисляемые столбцы или таблицы. Это основная часть работы с DAX. С помощью DAX-формул пользователь фильтрует и сортирует данные, рассчитывает нужные показатели и так далее.
4. Собрать отчёт. В рамках этого этапа строят дашборды на основе результатов. Пользователь выбирает нужные данные, которые он получил на предыдущем этапе, и представляет их в виде графиков, диаграмм, сводных таблиц и других визуальных элементов.
Выше мы говорили, что DAX используют в программах для анализа данных от Microsoft: Power BI, Analysis Services и надстройке Power Pivot для Excel. Функции DAX в этих программах схожи, но есть некоторые различия.
На мой взгляд, в Power BI больше возможностей для анализа данных. Например, в нём больше вариантов для визуализации данных и публикации отчётов. Интерфейс для написания функций в Power BI тоже удобнее.
В Power BI можно работать совместно с другими пользователями — с помощью репозиториев. Тогда изменения, которые внесли на одном устройстве, сразу видны на других устройствах в режиме реального времени.
Ещё Power BI развивается активнее других программ, поэтому его пользователи получают доступ к новым функциям DAX быстрее, чем пользователи Power Pivot и Analysis Services.
Power BI предпочтительнее использовать для решения сложных задач, где перечисленные преимущества необходимы. Для простых сценариев хорошим вариантом может быть Excel Power Pivot. Он также подойдёт пользователям, которым больше нравится Excel.
Изучать DAX можно самостоятельно или на курсах. Для самостоятельного изучения рекомендую такие источники:
Важно понимать, что самостоятельное изучение DAX — «игра вдолгую». Если вы хотите стать уверенным пользователем быстрее, лучше рассмотреть курсы.