Начиная с DAX в Power BI



Этот блог Edureka поможет вам начать с основ Power BI DAX или выражений Data Analytics, если вы новичок в Power BI, с синтаксисом и примерами.

Этот блог в основном предназначен для пользователей, впервые знакомых с и предназначен для того, чтобы дать вам быстрый и легкий обзор языка формул, называемого Выражения анализа данных (DAX) .Если вы знакомы с функциями в MS Excel или , многие формулы в этом Основы Power BI DAX статья будет похожа на вас.

Сказав это, вот концепции, которые составляют неотъемлемую часть всех , после изучения которого вы должны хорошо разбираться в самых фундаментальных концепциях DAX.





Основы Power BI DAX: что такое DAX?

Итак, давайте начнем с основ Power BI DAX, хорошо?

С помощью Power BI Desktop довольно легко создавать отчеты, которые сразу же дают ценную информацию.



Но что, если вам нужно проанализировать процент роста по всем категориям продуктов для всех различных диапазонов дат? Или вам нужно подсчитать годовой рост вашей компании по сравнению с гигантами рынка?

Изучение DAX поможет вам максимально эффективно использовать и решать реальные бизнес-задачи.

DAX состоит из функций, операторов и констант, которые можно представить в виде формул для вычисления значений с помощью данных, уже имеющихся в вашей модели.



Power BI DAX включает библиотеку из более чем 200 функций, операторов и конструкций. Его библиотека обеспечивает огромную гибкость в создании показателей для расчета результатов практически для любых задач анализа данных.

Основы Power BI DAX: как это работает?

Прежде всего, позвольте мне объяснить вам, как это работает.По большей части мы будем строить наше понимание Power BI DAX вокруг трех фундаментальных концепций: Синтаксис , Контекст , и Функции .

Конечно, здесь есть и другие важные концепции, но понимание этих трех обеспечит лучшую основу, на которой вы собираетесь развивать свои навыки.

Синтаксис

В Синтаксис состоит из различных компонентов, составляющих формулу и ее написания. Lсогласен с этой простой формулой DAX.

Пытаясь понять формулу DAX, часто бывает полезно разбить каждый из элементов на язык, на котором вы думаете и говорите каждый день. Итак, эта формула включает следующие элементы синтаксиса:

Синтаксис - Power BI DAX - Edureka

Я. Тотальная распродажа это название меры.

II. В оператор знака равенства (=) обозначает начало формулы.

III. СУММ складывает все числа в столбце, Продажи [SalesAmount] .

IV. Есть эти скобки () которые окружают выражение, содержащее один или несколько аргументов. Для всех функций требуется хотя бы один аргумент.

V. Продажи - это таблица, на которую имеется ссылка.

МЫ. An аргумент передает значение функции. Указанный столбец [Объем продаж] - это аргумент, с помощью которого функция СУММ знает столбец, по которому она должна агрегировать СУММ.

Проще говоря, это можно прочитать как ' Для показателя Total Sales вычислите (=) СУММУ значений в столбце [SalesAmount] таблицы Sales ».

и лопатыРедактор Power BI DAX включает функцию предложений, которая помогает создавать синтаксически правильные формулы, предлагая правильные элементы.

Контекст

Контекст является одной из наиболее важных из трех концепций DAX. Когда говорят о контексте, это может относиться к одному из двух типов. Контекст строки и Контекст фильтра .

Используется преимущественно при разговоре о Меры , то Строка-Контекст проще всего рассматривать как текущую строку. Он применяется всякий раз, когда в формуле есть функция, которая применяет фильтры для идентификации отдельной строки в таблице.

Фильтр-Контекст немного сложнее для понимания, чем Row-Context. Вы можете легко представить контекст фильтра как один или несколько фильтров, применяемых при вычислении. ВFilter-Context не существует вместо Row-context. Скорее, он применяется в дополнение к первому. Посмотрите на следующую формулу DAX.

Эта формула включает следующие элементы синтаксиса:

Я. Название меры Магазин продаж .

II. В оператор знака равенства (=) обозначает начало формулы.

III. В РАССЧИТАТЬ функция оценивает выражение как аргумент.

IV. Скобки () окружают выражение, содержащее один или несколько аргументов.

V. Мера [Тотальная распродажа] в той же таблице, что и выражение.

МЫ. К запятая (,) отделяет первый аргумент выражения от аргумента фильтра.

ТЫ ИДЕШЬ. Столбец с полной ссылкой, Канал [ChannelName] это наш контекст строки. Каждая строка в этом столбце указывает канал, Магазин, Интернет и т. Д.

VIII. Особая ценность, хранить используется как фильтр. Это наш контекст фильтра.

Эта формула обеспечивает это Показатель общих продаж рассчитывается только для строк в столбце Channel [ChannelName] со значением «Store» в качестве фильтра.

Функции

Функции предопределенные, структурированные и упорядоченные формулы. Они выполняют вычисления с использованием аргументы перешла к ним. Эти аргументы могут быть числами, текстом, логическими значениями или другими функциями.

Основы Power BI DAX: Вычисляемые столбцы и меры

В этом блоге мы сосредоточимся на формулах Power BI DAX, используемых в расчетах, в Меры и Расчетные столбцы .

Расчетные столбцы

Когда вы создаете модель данных в Power BI Desktop, вы можете расширить таблицу, создав новые столбцы. Содержимое столбцов определяется выражением DAX, оценивается строка за строкой или в контексте текущей строки в этой таблице.

Однако в моделях данных для DAX все вычисляемые столбцы занимают место в памяти и вычисляются во время обработки таблицы.

Такое поведение помогает улучшить взаимодействие с пользователем, но использует драгоценную оперативную память и, следовательно, является плохой привычкой в ​​производственной среде, поскольку каждый промежуточный расчет хранится в ОЗУ и тратит драгоценное пространство.

Меры

Существует еще один способ определения вычислений в модели DAX, который полезен, если вам нужно работать с агрегированными значениями, а не построчно. Эти расчеты - меры. Одним из требований DAX является определение меры в таблице. Однако мера на самом деле не относится к таблице. Таким образом, вы можете перемещать меру из одной таблицы в другую без потери ее функциональности.

Расчетные столбцы и меры

И в показателях, и в вычисляемых столбцах используются выражения DAX. Разница в контексте оценки. Мера оценивается в контексте ячейки, оцениваемой в отчете или в запросе DAX, тогда как вычисляемый столбец вычисляется на уровне строки в таблице, которой он принадлежит.

Даже если они выглядят одинаково, между вычисляемыми столбцами и показателями есть большая разница. Значение вычисляемого столбца вычисляется во время обновления данных и использует текущую строку в качестве контекста, это не зависит от взаимодействия пользователя с отчетом.

Следовательно, вы должны определить вычисляемый столбец всякий раз, когда вы хотите сделать следующее

  • Поместите вычисленные результаты в срез или просмотрите результаты в строках или столбцах сводной таблицы (в отличие от области значений), или на осях диаграммы, или используйте результат в качестве условия фильтрации в запросе DAX.
  • Определите выражение, которое строго привязано к текущей строке. Например, «Цена * Количество» не может работать в среднем или в сумме двух столбцов.
  • Распределите по категориям текст или числа. Например, диапазон значений меры.

Мера работает с агрегатами данных, определенными текущим контекстом, который зависит от фильтра, применяемого в отчете, например среза, выбора строк и столбцов в сводной таблице или осей и фильтров, применяемых к диаграмме.

Таким образом, вы должны определить меру всякий раз, когда вы хотите отобразить результирующие значения вычислений, которые отражают выбор пользователя, например

  • Когда вы рассчитываете процент прибыли по определенной выборке данных.
  • Когда вы вычисляете соотношение продукта по сравнению со всеми продуктами, но сохраняете фильтр по годам и регионам.

Основы Power BI DAX: Типы функций в DAX

1. Агрегатные функции

MIN

Эта функция DAX rвозвращает минимальное числовое значение в столбце или между двумя скалярными выражениями.

Синтаксис

MIN()

пример

знак равноMIN([ResellerMargin])

MINA

Эта функция DAX rвозвращает минимальное значение в столбце, включая любые логические значения и числа, представленные в виде текста.

Синтаксис

MINA()

пример

знак равноMINA(([Почтовый индекс])

MINX

Эта функция DAX возвращаетминимальное числовое значение, полученное в результате вычисления выражения для каждой строки таблицы.

Синтаксис

MINX(

,)

пример

знак равноMINX(ФИЛЬТР(Интернет-продажи, Интернет-продажи [SalesTerritoryKey] =5), Интернет-продажи [Грузовые перевозки] + Интернет-продажи [TaxAmt])

МАКСИМУМ

Эта функция DAX rвозвращает максимальное значение в столбце, включая любые логические значения и числа, представленные в виде текста.

Синтаксис

МАКСИМУМ()

пример

знак равноМАКСИМУМ([ResellerMargin])

МАКСИМУМ

Эта функция DAX rвозвращает максимальное значение в столбце, включая любые логические значения и числа, представленные в виде текста.

Синтаксис

МАКСИМУМ()

пример

знак равноМАКСИМУМ(([Почтовый индекс])

MAXX

Эта функция DAX возвращаетмаксимальное числовое значение, полученное в результате вычисления выражения для каждой строки таблицы.

Синтаксис

MAXX(

,)

пример

знак равноMAXX(ФИЛЬТР(Интернет-продажи, Интернет-продажи [SalesTerritoryKey] =5), Интернет-продажи [Грузовые перевозки] + Интернет-продажи [TaxAmt])

СУММ

Эта функция DAXразбивает все числа в столбце.

Синтаксис

СУММ()

пример

знак равноСУММ(Офис продаж])

СРЕДНИЙ

Эта функция DAX rвозвращает среднее арифметическое значений в столбце.

Синтаксис

СРЕДНИЙ()

пример

знак равноСРЕДНИЙ(Интернет-продажи [ExtendedSalesAmount])

Sumx

Эта функция DAX rвозвращает сумму выражения, оцененного для каждой строки в таблице.

Синтаксис

Sumx(

,)

пример

знак равноSumx(ФИЛЬТР(Интернет-продажи, Интернет-продажи [SalesTerritoryID] =5), [Фрахт])

AVERAGEX

Эта функция DAX cвычисляет среднее арифметическое для набора выражений, вычисленных по таблице.

Синтаксис

AVERAGEX(

,)

пример

знак равноAVERAGEX(Интернет-продажи, Интернет-продажи [Грузовые перевозки] + Интернет-продажи [TaxAmt])

2. Функции подсчета

DISTINCTCOUNT

Это функция DAX, используемая для возврата отдельного количества элементов в столбце. Таким образом, если имеется несколько номеров одного и того же элемента, эта функция будет считать его как один элемент.

Синтаксис

DISTINCTCOUNT()

пример

знак равноDISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])

COUNT

Это функция DAX, используемая для возврата количества элементов в столбце. Таким образом, если имеется несколько номеров одного и того же элемента, эта функция будет считать его как отдельные элементы, а не как один элемент.

Синтаксис

COUNT()

Примеры

знак равноCOUNT([Дата отправки])

COUNTA

Это функция DAX, используемая для возврата количества элементов в столбце, который не пуст.

Синтаксис

COUNTA()

пример

знак равноCOUNTA('Торговый посредник' [телефон])

COUNTROWS

Это функция DAX, котораяподсчитывает количество строк в указанной таблице или в таблице, определенной выражением.

Синтаксис

установить php на windows 8

COUNTROWS(

)

пример

знак равноCOUNTROWS('Заказы')

СЧИТАТЬПУСТОТЫ

Это функция DAX, котораяподсчитывает количество пустых ячеек в столбце.

Синтаксис

СЧИТАТЬПУСТОТЫ()

пример

знак равноСЧИТАТЬПУСТОТЫ(Торговый посредник [BankName])

3. Функции даты и времени

ДАТА

Эта функция DAX rвозвращает указанную дату в формате даты и времени.

Синтаксис

ДАТА(<год>,<месяц>,<день>)

пример

знак равноДАТА(2019 г.,12, 17)

ЧАС

Эта функция DAX rвозвращает указанный час как число от 0 до 23 (с 12:00 до 23:00).

Синтаксис

ЧАС()

пример

знак равноЧАС('Заказы' [TransactionTime])

СЕГОДНЯ

Эта функция DAX rвозвращает текущую дату.

Синтаксис

СЕГОДНЯ()

СЕЙЧАС ЖЕ

Эта функция DAX rвозвращает текущую дату и время в формате даты и времени.

Синтаксис

СЕЙЧАС ЖЕ()

EOMONTH

Эта функция DAX rвозвращает дату в формате даты и времени последнего дня месяца до или после указанного количества месяцев.

Синтаксис

EOMONTH(,)

пример

знак равноEOMONTH('3 марта 2008 г.',1.5)

4. Математические функции

РАЗДЕЛ

Эта функция DAX rвозвращает абсолютное значение заданного числа.

Синтаксис

РАЗДЕЛ()

пример

знак равноABS ([DealerPrice] - [ListPrice])

EXP

Эта функция DAX rвозвращает значение e в степени данного числа.

Синтаксис

EXP()

пример

= EXP ([Мощность])

ФАКТ

Эта функция DAX rвозвращает факториал числа.

Синтаксис

ФАКТ()

пример

= ФАКТ ([значения])

LN

Эта функция DAX rвозвращает натуральный логарифм данного числа.

Синтаксис

LN()

пример

= LN ([Значения])

ЖУРНАЛ

Эта функция DAX rвозвращает журнал с основанием данного числа.

Синтаксис

ЖУРНАЛ(,)

пример

Все последующие возвращают тот же результат: 2.

= ЖУРНАЛ (100,10)

= ЖУРНАЛ (100)

= LOG10 (100)

ПИ

Эта функция DAX rвозвращает значение Пи.

Синтаксис

ПИ()

МОЩНОСТЬ

Эта функция DAX rвозвращает значение первого аргумента в степени второго аргумента.

Синтаксис

МОЩНОСТЬ(,<мощность>)

пример

= МОЩНОСТЬ (5,2)

QUOTIENT

Эта функция DAX выполняет деление rвозвращает целую часть частного.

Синтаксис

QUOTIENT(,)

пример

= ЧИСЛО (5,2)

ЗНАК

Эта функция DAX возвращает знак заданного числа.

Синтаксис

ЗНАК()

пример

= SIGN (([Цена продажи] - [Себестоимость]))

SQRT

Эта функция DAX rвозвращает квадратный корень заданного числа.

Синтаксис

SQRT()

пример

= КОРЕНЬ (25)

5. Логические функции

И

Эта функция DAX выполняет логическое И (соединение) с двумя выражениями. Чтобы AND вернул истину, должны быть выполнены оба указанных условия.

Синтаксис

И(,)

пример

= ЕСЛИ (И (10>9, -10 <-один),'Все правда','Одно или несколько ложных'

Поскольку оба условия, переданные в качестве аргументов функции И, истинны, формула возвращает значение «Все верно».

ИЛИ

Эта функция DAX выполняет логическое ИЛИ (дизъюнкцию) над двумя выражениями. Чтобы OR вернул истину, должно быть выполнено одно из двух указанных условий.

Синтаксис

ИЛИ(,)

пример

= ЕСЛИ (ИЛИ (10>9, -10> -один),'Правда','Ложь'

Поскольку одно из условий, переданных в качестве аргументов функции ИЛИ, истинно, формула возвращает 'Истина'.

НЕ

Эта функция DAX выполняет логическое НЕ (отрицание) для данного выражения.

Синтаксис

НЕ()

пример

= НЕ ([CalculatedColumn1])

Для каждой строки в Calculated Column1 функция НЕ возвращает логическую противоположность заданного значения.

ЕСЛИ

Эта функция DAX проверяет последовательность входных данных на предмет того, который удовлетворяет условию, указанному в аргументе.

Синтаксис

ЕСЛИ(логический_тест> ,, значение_если_ ложь)

пример

= IF ([Звонки]<200,'низкий', IF ([Calls]<300,'Средняя','высоко'))

ЕСЛИ ОШИБКА

Эта функция DAX eоценивает выражение и возвращает указанное значение, если выражение возвращает ошибку.

Синтаксис

ЕСЛИ ОШИБКА(ценность, значение_если_ошибка)

пример

= ЕСЛИ ОШИБКА (25/0,9999)

6. Информационные функции

ISBLANK

Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение пустым.

Синтаксис

ISBLANK(<ценность>)

пример

= IF (ISBLANK ('CalculatedMeasures' [PreviousYearTotalSales]), BLANK (), ('CalculatedMeasures' [Total Sales] - 'CalculatedMeasures' [PreviousYearTotalSales]) / 'CalculatedMeasures' [PreviousYearTotalSales])

ISNUMBER

Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение числовым.

Синтаксис

ISNUMBER(<ценность>)

пример

= ЕСЛИ (ЕЧИСЛО (0),'Это число','Не число')

ISTEXT

Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение текстом.

Синтаксис

ISTEXT(<ценность>)

пример

= ЕСЛИ (ЕТЕКСТ ('текст'),'Текст','Не является текстом')

ISNONTEXT

Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение нетекстовым.

Синтаксис

ISNONTEXT(<ценность>)

пример

= ЕСЛИ (БЕЗ ТЕКСТ ('текст'),'Не является текстом','Текст')

ОШИБКА

Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение ошибкой.

Синтаксис

ISERROE(<ценность>)

пример

= ЕСЛИ (ISERROR (SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD])), BLANK (), SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD) [SalesAmount_USD]) / SUM (' InternetSales_USD_USD)

7. Текстовые функции

СЦЕПИТЬ

Эта функция DAX jобъединяет две текстовые строки в одну.

Синтаксис

СЦЕПИТЬ(,)

пример

= СЦЕПИТЬ ('Привет', 'Мир')

КОНКАТЕНАТЕКС

Эта функция DAXрезультат выражения, вычисляемого для каждой строки в таблице.

Синтаксис

КОНКАТЕНАТЕКС(

,, [разделитель])

пример

= CONCATENATEX (Сотрудники, [Имя] & «« & [Фамилия], «,»)

ИСПРАВЛЕНО

Эта функция DAX rокругляет число до указанного количества десятичных знаков и возвращает результат в виде текста.

Синтаксис

ИСПРАВЛЕНО(,,)

пример

= ФИКСИРОВАННОЕ ([PctCost],3,один)

ЗАМЕНИТЬ

Эта функция DAXзаменяет часть текстовой строки на другую текстовую строку в зависимости от указанного количества символов.

Синтаксис

ЗАМЕНИТЬ(,,,)

пример

= REPLACE ('Новые продукты' [код продукта],один,2,'ОБ')

ПОИСК

Эта функция DAX rвозвращает количество символов, в которых впервые была найдена конкретная текстовая строка.

Синтаксис

ПОИСК(, [, [] [,]])

пример

= ПОИСК ('п','принтер')

Формула возвращает 4, потому что «n» - четвертый символ в слове «принтер».

ВЕРХНИЙ

Эта функция DAX возвращаеттекстовая строка, состоящая только из прописных букв.

Синтаксис

ВЕРХНИЙ()

пример

= UPPER (['Новые продукты' [код продукта])

Основы Power BI DAX: создание первой меры

Предпосылка: Вам нужно будет открыть данный файл Power BI Desktop .

Поскольку я предполагаю, что это будет ваш первый пост, я напишу этот фрагмент очень подробно, чтобы вы могли следить за ним.

  1. В списке полей Просмотр отчета , щелкните правой кнопкой мыши Продажи таблица, за которой следует Новая мера .

  2. Заменить Измерение введя новое имя меры Продажи за предыдущий квартал, в Панель формул .

  3. В этой формуле вы хотите использовать РАССЧИТАТЬ функция. Итак, после знака равенства введите несколько первых букв CAL , а затем дважды щелкните функцию, которую хотите использовать.

  4. Функция РАСЧЕТ имеет как минимум два аргумента. Первое - это выражение, которое нужно оценить, а второе - это Фильтр .

  5. После открытия скобка ( для РАССЧИТАТЬ функция, тип СУММ за которым следует еще одна открывающая скобка ( передать аргумент СУММ функция.

  6. Начните печатать Поваренная соль , а затем выберите Продажи [SalesAmount] , за которым следует закрывающая скобка ) . Это первый аргумент выражения для нашего РАССЧИТАТЬ функция.

  7. Введите запятая (,) за которым следует пробел, чтобы указать первый фильтр, а затем введите ПРЕДЫДУЩИЙ КВАРТАЛ . Это будет наш фильтр.

  8. Вы будете использовать ПРЕДЫДУЩИЙ КВАРТАЛ функция интеллекта времени для фильтрации СУММ результаты к предыдущему кварталу.

  9. После открывающей скобки ( для функции PREVIOUSQUARTER введите Календарь [DateKey] .

  10. В ПРЕДЫДУЩИЙ КВАРТАЛ Функция имеет один аргумент - столбец, содержащий непрерывный диапазон дат. В нашем случае это DateKey столбец в таблице календаря.

  11. Убедитесь, что оба аргумента, передаваемые в PREVIOUSQUARTER и в функцию CALCULATE, закрыты, введя две закрытые круглые скобки. )) .

  12. Ваша формула должна теперь выглядеть примерно так:
    Продажи за предыдущий квартал = РАССЧИТАТЬ (СУММА (Продажи [SalesAmount]), ПРЕДЫДУЩИЙ КВАРТАЛ (Календарь [DateKey]))

  13. Щелкните галочку в строке формул или нажмите Enter, чтобы подтвердить формулу.

Как только вы добавите это в свою модель, вуаля! Вы только что создали меру с помощью DAX, причем не из простых.

Что делает эта формула рассчитать общий объем продаж за предыдущий квартал в зависимости от фильтров, примененных в отчете.

Итак, давайте, если бы нам пришлось поставить Объем продаж и наш новый Продажи за предыдущий квартал измерить на диаграмме, а затем добавить Год и QuarterOfYear так как Слайсеры, мы получили бы что-то вроде следующего

Теперь, когда у вас есть базовое представление о концепциях Power BI DAX, вы можете начать создавать формулы DAX для показателей самостоятельно. Действительно, это может быть немного сложно, ноDAX существует уже несколько лет ив сети доступно множество ресурсов. Прочитав этот блог и немного поэкспериментировав, вы сможете научиться находить бизнес-решения с помощью Power BI DAX.