КУРС

АНАЛИТИК ДАННЫХ

Научитесь выстраивать процессы для роста бизнеса и увеличения прибыли.
 

В статье рассказываем о структуре языка 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.

КУРС

АНАЛИТИК ДАННЫХ

Научитесь выстраивать процессы для роста бизнеса и увеличения прибыли.