В статье рассказываем о структуре языка DAX, объясняем, как он работает, чем отличается от привычного всем Excel и с чего начать обучение.
Что такое DAX?
DAX — это язык, который помогает оптимизировать работу в некоторых приложениях Microsoft (это Power BI и Power Pivot).
DAX состоит из набора функций, которые помогают видоизменять и корректировать имеющиеся данные. Это удобно, когда информации недостаточно для анализа или когда нужно получить на основе данных новые показатели.
В чем польза языка DAX?
На самом деле, создать книгу и импортировать в нее какие-то данные очень просто. Можно без особых усилий создавать сводные таблицы и диаграммы, которые отображали бы важную информацию, даже не используя формулы DAX.
Но как быть в тех случаях, когда нужно проанализировать данные о продажах, например, по нескольким категориям товаров и для разных временных промежутков? Или нужно объединить данные инвентаризации из нескольких таблиц в разных источниках данных?
В этом случае без формул DAX тоже можно обойтись, но те возможности, которые предоставляет этот язык, стоят того, чтобы немного повозиться с его освоением.
Изучение того, как создавать эффективные формулы DAX, поможет получить максимальную отдачу от ваших бизнес-данных. Создав новые меры и вычисляемые столбцы, вы получаете не нагромождение данных, а «приятную» для работы специалиста среду.
Аналитику не придется судорожно бегать по всем отделам в поисках дополнительной информации: он сам сможет создавать то, что нужно и пригодиться в исследовании. Получив необходимую информацию, он сможет начать решать реальные бизнес-проблемы, которые влияют на прибыль и процветание компании.
DAX — это рай для любознательного и ориентированного на результат специалиста.
Безусловно, многие знают, как создавать формулы в Microsoft Excel. Если вы чувствуете пробелы в знаниях функционала Excel, то рекомендуем записаться на наш открытый онлайн-курс «Аналитика в Excel». Начав работать с DAX, вы поймете, что синтаксис, набор функций и операторов у двух этих инструментов перекликаются. Но разница между ними просто не может не существовать (иначе зачем два одинаковых инструмента?). Основное различие заключается в том, что они по-разному сконструированы.
В Excel все действия связаны с ячейкой: мы знаем ее адрес, имеем к ней доступ, можем писать для нее формулы, менять типы данных (причем в одном столбце могут быть ячейки с разными типами), по-разному форматировать, объединять ячейки и так далее. То есть ячейка — базовая структурная единица.
В DAX так сделать уже не получится!
В качестве базового элемента здесь выступает столбец. У всех ячеек одного столбца одинаковый тип данных, формулы для расчета применяются к целому столбцу. Также с помощью DAX мы не сможем добраться до какой-то конкретной ячейки (у ячеек нет адресов).
Мы, конечно, сможем получить значение какой-то ячейки, например, прописав название таблицы, адрес необходимого нам столбца, а потом наложив строгий фильтр, чтобы осталось значение только из необходимой ячейки. Но адрес ее мы все же не узнаем. У нее его просто нет!
Чаще всего DAX применяют для усовершенствования работы в Power BI.
Базовых знаний о Power BI достаточно, чтобы создать достойный отчет со всеми доступными данными. Но если информации, которой вы располагаете недостаточно для анализа, тогда необходимо принять серьезные меры в создании новых мер, с помощью DAX (забавный оксюморон).
Так что, умение работать с языком формул рано или поздно пригодится. А сейчас лучшее время с ним познакомиться!
Сначала предлагаем узнать о трех основных принципах, на которых построен DAX — это синтаксис, функции и контексты. Конечно, есть и другие концепции языка, но понимание этих трех принципов обеспечит хорошую базу для развития навыков DAX.
Перед тем как приступить к глубокому изучению, давайте проясним два важных понятия, которые встречались ранее и без которых не обойтись, если вы хотите научиться «говорить» на языке DAX.
Первое понятие — «мера». Это некоторое выражение, рассчитывающее не существовавшие до этого важные показатели.
Для этого они берут за основу данные, содержащиеся в таблицах, и прописывают формулу. С ее помощью появляется новое значение, которое можно использовать в других вычислениях или в визуализации.
Примером использования мер можно считать нахождение среднего значения, суммы элементов столбца, количества уникальных записей и прочее.
Второе понятие — «Вычисляемый столбец».
Оно также позволяет рассчитывать показатели, но расчет производится для каждой строки таблицы отдельно, а результат сохраняется в новый столбец таблицы. Это дает возможность использовать новый столбец наравне с основными.
Эти два понятия необходимо различать! Но вернемся к нашим буквам и слогам.
Синтаксис
Первоначальный и самый важный шаг в изучении языка (не только технического, но и любого другого) состоит в том, чтобы разбить его на минимальные элементы и понять, как с ними работать.
Вспомните начальную школу и уроки русского или английского языка.
Первым делом нас учили алфавиту. После того, как мы выучили буквы (основные кирпичики языка), мы начали изучать слоги (соединение нескольких букв в новую структурную единицу), затем слоги складывали в слова, слова — в словосочетания, словосочетания — в предложения и в конечном итоге получали текст.
Точно так же нужно подходить к изучению языков программирования!
Именно поэтому мы сперва изучим синтаксис! Посмотрим на формулу, написанную с помощью DAX:
Она состоит из следующих элементов:
A: Название новой меры.
B: Оператор (=). Как и в Excel он указывает на начало вычисляемого высказывания.
C: SUM — это функция DAX. С ее помощью можно найти сумму значений.
D: В круглых скобках указывают аргумент функции (те значения, которые участвуют в расчетах). Каждая функция должна иметь хотя бы один аргумент.
E: Название таблицы, из которой берется поле или столбец.
F: Название поля, из которого формула будет брать значения.
У нас создается новая мера «Прогнозируемые продажи 2020», которая будет равна сумме значений столбца [Sales] из таблицы [financials].
G: Оператор умножения
Проще говоря, эта формула DAX дает команду системе рассчитать произведение суммы значений Sales и 1,08 и сохранить значение в новом поле или столбце, называемом «Прогнозируемые продажи 2020».
Чтобы проще было понять формулу, можно разбить ее на элементы и проговорить их.
Сделаем это для описанного выше примера:
В таблице financials для каждой строки в мере «Пронозируемые продажи 2020» рассчитайте результат, умножая значения из столбца [Sales] на 1,08. Все просто!
Перейдем к понятию Функции
Функция DAX — это предопределенная, структурированная и упорядоченная формула, которая показывает, как производить расчет. В скобках после функции обязательно должен указываться аргументы. Параметрами функции могут быть любые элементы: от ссылок на столбцы до других функций.
Каждая функция выполняет определенную операцию со значениями, заключенными в скобках (то есть входящих в аргумент).
Как мы уже упоминали — любая формула DAX использует только полные столбцы или таблицы. Если нужно использовать функции для отдельных значений в столбце, то неизбежно применение фильтров.
Функции DAX очень похожи на формулы Excel
Вот основные типы, которые используют в работе:
1. Функции даты и времени
Эти функции помогают производить вычисления для значений даты и времени.
2. Интеллектуальные функции времени
Функции анализа времени используют, когда нужно оценить какие-то показатели за определенные периоды времени (день, неделя, месяц, квартал и т.п.), а затем сравнить их между собой.
3. Информационные
Данный тип позволяет получить метаданные (то есть информацию о данных). Например, функция ISERROR (аналог формулы ЕСЛИОШИБКА) возвращает TRUE, если аргумент содержит ошибку.
Еще примеры:
ISBLANK проверяет является ли значение пустым.
ISNUMBER показывает является ли значение числовым, а ISTEXT – является ли текстовым.
4. Логические
Логические функции проверяют выполнение некоторого условия. Если оно выполняется, то результат – ИСТИНА, если нет, то ЛОЖЬ.
5. Математические и тригонометрические
Математические и триггерные функции используются для выполнения всевозможных математических операций для указанных значений.
6. Агрегатные
Позволяют получать статистическую информацию о данных, например, максимум, минимум, среднее, общее количество строк и так далее.
7. Текстовые
Текстовые функции в Power BI очень похожи на строковые функции Excel. Они преобразовывают строковые значения.
8. Функции родителя и ребенка
Данный тип функций используется для значений данных, которые являются частью иерархии родительских и дочерних элементов.
9. Табличные
Табличные функции используются в Power BI для видоизменения целой таблицы. Эти функции похожи на операторов SQL.
И, наконец, мы добрались до третьего основного «кирпичика» языка DAX! Существует два типа контекстов: «Контекст строки» и «Контекст фильтра». Разберемся, что это.
Контекст строки
Под контекстом строки легче всего понимать текущую строку. Иными словами, это область данных, которые используются в вычислении в конкретный момент.
Например, посчитаем расходы:
DAX может вычислять значения для каждой строки в столбце «Расходы», так как для этого есть контекст: для каждой строки он берет значения из столбца [Sales] и вычитает из него соответствующие значения из столбца [Profit] (значения находятся в одной строке). Это и есть контекст строки.
Контекст фильтра
С контекстом фильтра дела обстоят сложнее. Контекст фильтра — это набор фильтров, которые применяются к выражению. Параллельно с вычислением происходит отбор строк, которые должны участвовать в расчетах.
Такой подход необходим, так как в DAX нет доступа к отдельным ячейкам. До них можно добраться только с помощью фильтров.
Эти два типа контекстов не существуют отдельно. Скорее Контекст фильтра используется дополнительно к Контексту строки.
Не расстраивайтесь, если вы не сразу поймете, как это работает. Все приходит с опытом и практикой!
Заключение
После прочтения статьи у вас должно было проясниться общее представление о наиболее важных концепциях языка DAX. Теперь вы можете смело пробовать создавать свои формулы и использовать новые меры и столбцы в визуальных отчетах Power BI.
Не переживайте, это еще не конец!
Мы вернемся к изучению DAX совсем скоро и уже на практике посмотрим, где и как он нам сможет пригодиться.
Главную мысль мы усвоили — DAX дает новый подход к анализу данных: он умный и интеллектуальный. Благодаря нему можно найти подходящие решения для бизнес-задач, которые есть риск упустить при обычном анализе. Делитесь ваши успехами в познании DAX в комментариях и записывайтесь на наш курс «Бизнес-аналитик», если хотите освоить язык DAX.