Основные функции и операторы DAX
Введение в DAX и его роль в Power BI
DAX (Data Analysis Expressions) — это язык формул, используемый в Power BI, Power Pivot и Analysis Services. Он позволяет создавать вычисляемые столбцы, меры и таблицы, что значительно расширяет возможности анализа данных. DAX сочетает в себе функции Excel и SQL, что делает его мощным инструментом для анализа данных. В отличие от традиционных языков программирования, DAX специально разработан для работы с данными, что делает его более интуитивно понятным для пользователей, знакомых с таблицами и базами данных.
DAX позволяет выполнять сложные вычисления и трансформации данных, что особенно полезно для бизнес-аналитиков и специалистов по данным. С его помощью можно создавать динамические отчеты и визуализации, которые обновляются в реальном времени. Это делает Power BI мощным инструментом для принятия обоснованных решений на основе данных.
Основные операторы DAX
DAX включает в себя множество операторов, которые помогают выполнять различные операции с данными. Операторы в DAX играют ключевую роль в создании формул и выражений, позволяя выполнять арифметические, логические и сравнительные операции. Вот некоторые из них:
Арифметические операторы
Арифметические операторы используются для выполнения базовых математических операций. Они позволяют складывать, вычитать, умножать и делить значения в ваших данных.
+
(сложение): используется для сложения двух чисел. Например,3 + 2
вернет5
.-
(вычитание): используется для вычитания одного числа из другого. Например,5 – 3
вернет2
.*
(умножение): используется для умножения двух чисел. Например,4 * 2
вернет8
./
(деление): используется для деления одного числа на другое. Например,8 / 2
вернет4
.
Логические операторы
Логические операторы используются для выполнения логических операций, таких как И, ИЛИ и НЕ. Они позволяют создавать условия и фильтры в ваших формулах.
&&
(логическое И): возвращает TRUE, если оба операнда истинны. Например,TRUE && FALSE
вернетFALSE
.||
(логическое ИЛИ): возвращает TRUE, если хотя бы один из операндов истинен. Например,TRUE || FALSE
вернетTRUE
.!
(логическое НЕ): возвращает TRUE, если операнд ложен. Например,!TRUE
вернетFALSE
.
Операторы сравнения
Операторы сравнения используются для сравнения значений. Они позволяют проверять равенство, неравенство, а также большее или меньшее значение.
=
(равно): проверяет равенство двух значений. Например,5 = 5
вернетTRUE
.<>
(не равно): проверяет, не равны ли два значения. Например,5 <> 3
вернетTRUE
.>
(больше): проверяет, больше ли одно значение другого. Например,5 > 3
вернетTRUE
.<
(меньше): проверяет, меньше ли одно значение другого. Например,3 < 5
вернетTRUE
.>=
(больше или равно): проверяет, больше ли или равно одно значение другому. Например,5 >= 5
вернетTRUE
.<=
(меньше или равно): проверяет, меньше ли или равно одно значение другому. Например,3 <= 5
вернетTRUE
.
Ключевые функции DAX для работы с числами и текстом
DAX предоставляет широкий набор функций для работы с числами и текстом. Эти функции позволяют выполнять сложные вычисления и манипуляции с данными, что делает их незаменимыми для анализа данных.
Функции для работы с числами
Функции для работы с числами позволяют выполнять математические операции и агрегировать числовые данные.
SUM()
: вычисляет сумму числового столбца. Например,SUM(Таблица[Столбец])
вернет сумму всех значений в столбце.AVERAGE()
: вычисляет среднее значение числового столбца. Например,AVERAGE(Таблица[Столбец])
вернет среднее значение всех чисел в столбце.MIN()
: находит минимальное значение в числовом столбце. Например,MIN(Таблица[Столбец])
вернет наименьшее значение в столбце.MAX()
: находит максимальное значение в числовом столбце. Например,MAX(Таблица[Столбец])
вернет наибольшее значение в столбце.
Функции для работы с текстом
Функции для работы с текстом позволяют манипулировать текстовыми данными, объединять строки и извлекать подстроки.
CONCATENATE()
: объединяет два или более текстовых значения в одно. Например,CONCATENATE("Привет", " ", "Мир")
вернетПривет Мир
.LEFT()
: возвращает заданное количество символов с начала текстового значения. Например,LEFT("Привет", 3)
вернетПри
.RIGHT()
: возвращает заданное количество символов с конца текстового значения. Например,RIGHT("Привет", 3)
вернетвет
.LEN()
: возвращает количество символов в текстовом значении. Например,LEN("Привет")
вернет6
.
Агрегационные и временные функции DAX
Агрегационные и временные функции DAX позволяют выполнять сложные вычисления и анализ временных данных. Эти функции особенно полезны для создания отчетов и визуализаций, которые требуют анализа данных за определенные периоды времени.
Агрегационные функции
Агрегационные функции позволяют выполнять вычисления на основе выражений и данных в таблицах.
SUMX()
: вычисляет сумму выражения для каждой строки таблицы. Например,SUMX(Таблица, Таблица[Количество] * Таблица[Цена])
вернет сумму произведений количества и цены для каждой строки.AVERAGEX()
: вычисляет среднее значение выражения для каждой строки таблицы. Например,AVERAGEX(Таблица, Таблица[Количество] * Таблица[Цена])
вернет среднее значение произведений количества и цены для каждой строки.COUNT()
: подсчитывает количество значений в столбце. Например,COUNT(Таблица[Столбец])
вернет количество непустых значений в столбце.COUNTROWS()
: подсчитывает количество строк в таблице. Например,COUNTROWS(Таблица)
вернет количество строк в таблице.
Временные функции
Временные функции позволяют работать с датами и временем, извлекать компоненты даты и выполнять вычисления на основе временных данных.
DATE()
: создает дату из заданных года, месяца и дня. Например,DATE(2023, 10, 1)
вернет дату1 октября 2023 года
.YEAR()
: извлекает год из даты. Например,YEAR(DATE(2023, 10, 1))
вернет2023
.MONTH()
: извлекает месяц из даты. Например,MONTH(DATE(2023, 10, 1))
вернет10
.DAY()
: извлекает день из даты. Например,DAY(DATE(2023, 10, 1))
вернет1
.TODAY()
: возвращает текущую дату. Например,TODAY()
вернет текущую дату.NOW()
: возвращает текущую дату и время. Например,NOW()
вернет текущую дату и время.
Примеры использования DAX в реальных сценариях
Примеры использования DAX помогают лучше понять, как применять функции и операторы для решения реальных задач анализа данных. Вот несколько примеров, которые демонстрируют, как DAX может быть использован в различных сценариях.
Пример 1: Вычисление общего дохода
Предположим, у вас есть таблица продаж с колонками Количество
и Цена за единицу
. Вы можете создать меру для вычисления общего дохода:
ОбщийДоход = SUMX(Продажи, Продажи[Количество] * Продажи[Цена за единицу])
Этот пример показывает, как можно использовать функцию SUMX()
для вычисления суммы произведений количества и цены для каждой строки в таблице продаж.
Пример 2: Создание вычисляемого столбца для полного имени клиента
Если у вас есть таблица клиентов с колонками Имя
и Фамилия
, вы можете создать вычисляемый столбец для полного имени:
ПолноеИмя = CONCATENATE(Клиенты[Имя], " " & Клиенты[Фамилия])
Этот пример демонстрирует, как использовать функцию CONCATENATE()
для объединения имени и фамилии в одно текстовое значение.
Пример 3: Подсчет количества продаж за текущий год
Вы можете создать меру для подсчета количества продаж за текущий год:
ПродажиТекущийГод = CALCULATE(COUNTROWS(Продажи), YEAR(Продажи[Дата]) = YEAR(TODAY()))
Этот пример показывает, как использовать функцию CALCULATE()
вместе с временными функциями для подсчета количества продаж за текущий год.
Пример 4: Вычисление среднего значения продаж за последние 30 дней
Вы можете создать меру для вычисления среднего значения продаж за последние 30 дней:
СредниеПродажи30Дней = CALCULATE(AVERAGE(Продажи[Сумма]), Продажи[Дата] > TODAY() – 30)
Этот пример демонстрирует, как использовать функцию CALCULATE()
и временные функции для вычисления среднего значения продаж за определенный период времени.
Пример 5: Создание меры для вычисления прироста продаж
Вы можете создать меру для вычисления прироста продаж по сравнению с предыдущим годом:
ПриростПродаж = (SUM(Продажи[Сумма]) – CALCULATE(SUM(Продажи[Сумма]), SAMEPERIODLASTYEAR(Продажи[Дата]))) / CALCULATE(SUM(Продажи[Сумма]), SAMEPERIODLASTYEAR(Продажи[Дата]))
Этот пример показывает, как использовать функции SUM()
, CALCULATE()
и SAMEPERIODLASTYEAR()
для вычисления прироста продаж по сравнению с предыдущим годом.
Эти примеры показывают, как DAX может быть использован для решения различных задач анализа данных в Power BI. Надеюсь, эта статья помогла вам лучше понять основные функции и операторы DAX.