Этот блог в основном предназначен для пользователей, впервые знакомых с и предназначен для того, чтобы дать вам быстрый и легкий обзор языка формул, называемого Выражения анализа данных (DAX) .Если вы знакомы с функциями в MS Excel или , многие формулы в этом Основы Power BI DAX статья будет похожа на вас.
Сказав это, вот концепции, которые составляют неотъемлемую часть всех , после изучения которого вы должны хорошо разбираться в самых фундаментальных концепциях DAX.
- Основы Power BI DAX: что такое DAX?
- Основы Power BI DAX: как это работает?
- Основы Power BI DAX: вычисляемые столбцы и показатели
- Основы Power BI DAX: типы функций в DAX
- Основы Power BI 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, часто бывает полезно разбить каждый из элементов на язык, на котором вы думаете и говорите каждый день. Итак, эта формула включает следующие элементы синтаксиса:
Я. Тотальная распродажа это название меры.
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 возвращаетминимальное числовое значение, полученное в результате вычисления выражения для каждой строки таблицы.
Синтаксис
пример Эта функция DAX rвозвращает максимальное значение в столбце, включая любые логические значения и числа, представленные в виде текста. Синтаксис пример Эта функция DAX rвозвращает максимальное значение в столбце, включая любые логические значения и числа, представленные в виде текста. Синтаксис пример Эта функция DAX возвращаетмаксимальное числовое значение, полученное в результате вычисления выражения для каждой строки таблицы. Синтаксис пример Эта функция DAXразбивает все числа в столбце. Синтаксис пример Эта функция DAX rвозвращает среднее арифметическое значений в столбце. Синтаксис пример Эта функция DAX rвозвращает сумму выражения, оцененного для каждой строки в таблице. Синтаксис пример Эта функция DAX cвычисляет среднее арифметическое для набора выражений, вычисленных по таблице. Синтаксис пример Это функция DAX, используемая для возврата отдельного количества элементов в столбце. Таким образом, если имеется несколько номеров одного и того же элемента, эта функция будет считать его как один элемент. Синтаксис пример Это функция DAX, используемая для возврата количества элементов в столбце. Таким образом, если имеется несколько номеров одного и того же элемента, эта функция будет считать его как отдельные элементы, а не как один элемент. Синтаксис Примеры Это функция DAX, используемая для возврата количества элементов в столбце, который не пуст. Синтаксис пример Это функция DAX, котораяподсчитывает количество строк в указанной таблице или в таблице, определенной выражением. Синтаксис пример Это функция DAX, котораяподсчитывает количество пустых ячеек в столбце. Синтаксис пример Эта функция DAX rвозвращает указанную дату в формате даты и времени. Синтаксис пример Эта функция DAX rвозвращает указанный час как число от 0 до 23 (с 12:00 до 23:00). Синтаксис пример Эта функция DAX rвозвращает текущую дату. Синтаксис Эта функция DAX rвозвращает текущую дату и время в формате даты и времени. Синтаксис Эта функция DAX rвозвращает дату в формате даты и времени последнего дня месяца до или после указанного количества месяцев. Синтаксис пример Эта функция DAX rвозвращает абсолютное значение заданного числа. Синтаксис пример Эта функция DAX rвозвращает значение e в степени данного числа. Синтаксис пример Эта функция DAX rвозвращает факториал числа. Синтаксис пример Эта функция DAX rвозвращает натуральный логарифм данного числа. Синтаксис пример Эта функция DAX rвозвращает журнал с основанием данного числа. Синтаксис пример Эта функция DAX rвозвращает значение Пи. Синтаксис Эта функция DAX rвозвращает значение первого аргумента в степени второго аргумента. Синтаксис пример Эта функция DAX выполняет деление rвозвращает целую часть частного. Синтаксис пример Эта функция DAX возвращает знак заданного числа. Синтаксис пример Эта функция DAX rвозвращает квадратный корень заданного числа. Синтаксис пример Эта функция DAX выполняет логическое И (соединение) с двумя выражениями. Чтобы AND вернул истину, должны быть выполнены оба указанных условия. Синтаксис пример Эта функция DAX выполняет логическое ИЛИ (дизъюнкцию) над двумя выражениями. Чтобы OR вернул истину, должно быть выполнено одно из двух указанных условий. Синтаксис пример Эта функция DAX выполняет логическое НЕ (отрицание) для данного выражения. Синтаксис пример Эта функция DAX проверяет последовательность входных данных на предмет того, который удовлетворяет условию, указанному в аргументе. Синтаксис пример Эта функция DAX eоценивает выражение и возвращает указанное значение, если выражение возвращает ошибку. Синтаксис пример Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение пустым. Синтаксис пример Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение числовым. Синтаксис пример Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение текстом. Синтаксис пример Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение нетекстовым. Синтаксис пример Эта функция DAXвозвращает TRUE или FALSE послеcпроверяя, является ли значение ошибкой. Синтаксис пример Эта функция DAX jобъединяет две текстовые строки в одну. Синтаксис пример Эта функция DAXрезультат выражения, вычисляемого для каждой строки в таблице. Синтаксис пример Эта функция DAX rокругляет число до указанного количества десятичных знаков и возвращает результат в виде текста. Синтаксис пример Эта функция DAXзаменяет часть текстовой строки на другую текстовую строку в зависимости от указанного количества символов. Синтаксис пример Эта функция DAX rвозвращает количество символов, в которых впервые была найдена конкретная текстовая строка. Синтаксис пример Эта функция DAX возвращаеттекстовая строка, состоящая только из прописных букв. Синтаксис пример Предпосылка: Вам нужно будет открыть данный файл Power BI Desktop . Поскольку я предполагаю, что это будет ваш первый пост, я напишу этот фрагмент очень подробно, чтобы вы могли следить за ним. В списке полей Просмотр отчета , щелкните правой кнопкой мыши Продажи таблица, за которой следует Новая мера . Заменить Измерение введя новое имя меры Продажи за предыдущий квартал, в Панель формул . В этой формуле вы хотите использовать РАССЧИТАТЬ функция. Итак, после знака равенства введите несколько первых букв CAL , а затем дважды щелкните функцию, которую хотите использовать. Функция РАСЧЕТ имеет как минимум два аргумента. Первое - это выражение, которое нужно оценить, а второе - это Фильтр . После открытия скобка ( для РАССЧИТАТЬ функция, тип СУММ за которым следует еще одна открывающая скобка ( передать аргумент СУММ функция. Начните печатать Поваренная соль , а затем выберите Продажи [SalesAmount] , за которым следует закрывающая скобка ) . Это первый аргумент выражения для нашего РАССЧИТАТЬ функция. Введите запятая (,) за которым следует пробел, чтобы указать первый фильтр, а затем введите ПРЕДЫДУЩИЙ КВАРТАЛ . Это будет наш фильтр. Вы будете использовать ПРЕДЫДУЩИЙ КВАРТАЛ функция интеллекта времени для фильтрации СУММ результаты к предыдущему кварталу. После открывающей скобки ( для функции PREVIOUSQUARTER введите Календарь [DateKey] . В ПРЕДЫДУЩИЙ КВАРТАЛ Функция имеет один аргумент - столбец, содержащий непрерывный диапазон дат. В нашем случае это DateKey столбец в таблице календаря. Убедитесь, что оба аргумента, передаваемые в PREVIOUSQUARTER и в функцию CALCULATE, закрыты, введя две закрытые круглые скобки. )) . Ваша формула должна теперь выглядеть примерно так: Щелкните галочку в строке формул или нажмите Enter, чтобы подтвердить формулу. Как только вы добавите это в свою модель, вуаля! Вы только что создали меру с помощью DAX, причем не из простых. Что делает эта формула рассчитать общий объем продаж за предыдущий квартал в зависимости от фильтров, примененных в отчете. Итак, давайте, если бы нам пришлось поставить Объем продаж и наш новый Продажи за предыдущий квартал измерить на диаграмме, а затем добавить Год и QuarterOfYear так как Слайсеры, мы получили бы что-то вроде следующего Теперь, когда у вас есть базовое представление о концепциях Power BI DAX, вы можете начать создавать формулы DAX для показателей самостоятельно. Действительно, это может быть немного сложно, ноDAX существует уже несколько лет ив сети доступно множество ресурсов. Прочитав этот блог и немного поэкспериментировав, вы сможете научиться находить бизнес-решения с помощью Power BI DAX.
MINX(
,)
знак равноMINX(ФИЛЬТР(Интернет-продажи, Интернет-продажи [SalesTerritoryKey] =5), Интернет-продажи [Грузовые перевозки] + Интернет-продажи [TaxAmt])
МАКСИМУМ
МАКСИМУМ()
знак равноМАКСИМУМ([ResellerMargin])
МАКСИМУМ
МАКСИМУМ()
знак равноМАКСИМУМ(([Почтовый индекс])
MAXX
MAXX(
,)
знак равноMAXX(ФИЛЬТР(Интернет-продажи, Интернет-продажи [SalesTerritoryKey] =5), Интернет-продажи [Грузовые перевозки] + Интернет-продажи [TaxAmt])
СУММ
СУММ()
знак равноСУММ(Офис продаж])
СРЕДНИЙ
СРЕДНИЙ()
знак равноСРЕДНИЙ(Интернет-продажи [ExtendedSalesAmount])
Sumx
Sumx(
,)
знак равноSumx(ФИЛЬТР(Интернет-продажи, Интернет-продажи [SalesTerritoryID] =5), [Фрахт])
AVERAGEX
AVERAGEX(
,)
знак равноAVERAGEX(Интернет-продажи, Интернет-продажи [Грузовые перевозки] + Интернет-продажи [TaxAmt])
2. Функции подсчета
DISTINCTCOUNT
DISTINCTCOUNT()
знак равноDISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])
COUNT
COUNT()
знак равноCOUNT([Дата отправки])
COUNTA
COUNTA()
знак равноCOUNTA('Торговый посредник' [телефон])
COUNTROWS
установить php на windows 8
COUNTROWS(
)
знак равноCOUNTROWS('Заказы')
СЧИТАТЬПУСТОТЫ
СЧИТАТЬПУСТОТЫ()
знак равноСЧИТАТЬПУСТОТЫ(Торговый посредник [BankName])
3. Функции даты и времени
ДАТА
ДАТА(<год>,<месяц>,<день>)
знак равноДАТА(2019 г.,12, 17)
ЧАС
ЧАС()
знак равноЧАС('Заказы' [TransactionTime])
СЕГОДНЯ
СЕГОДНЯ()
СЕЙЧАС ЖЕ
СЕЙЧАС ЖЕ()
EOMONTH
EOMONTH(,)
знак равноEOMONTH('3 марта 2008 г.',1.5)
4. Математические функции
РАЗДЕЛ
РАЗДЕЛ()
знак равноABS ([DealerPrice] - [ListPrice])
EXP
EXP()
= EXP ([Мощность])
ФАКТ
ФАКТ()
= ФАКТ ([значения])
LN
LN()
= LN ([Значения])
ЖУРНАЛ
ЖУРНАЛ(,)
Все последующие возвращают тот же результат: 2.
= ЖУРНАЛ (100,10)
= ЖУРНАЛ (100)
= LOG10 (100)
ПИ
ПИ()
МОЩНОСТЬ
МОЩНОСТЬ(,<мощность>)
= МОЩНОСТЬ (5,2)
QUOTIENT
QUOTIENT(,)
= ЧИСЛО (5,2)
ЗНАК
ЗНАК()
= SIGN (([Цена продажи] - [Себестоимость]))
SQRT
SQRT()
= КОРЕНЬ (25)
5. Логические функции
И
И(,)
= ЕСЛИ (И (10>9, -10 <-один),'Все правда','Одно или несколько ложных'
Поскольку оба условия, переданные в качестве аргументов функции И, истинны, формула возвращает значение «Все верно».
ИЛИ
ИЛИ(,)
= ЕСЛИ (ИЛИ (10>9, -10> -один),'Правда','Ложь'
Поскольку одно из условий, переданных в качестве аргументов функции ИЛИ, истинно, формула возвращает 'Истина'.
НЕ
НЕ()
= НЕ ([CalculatedColumn1])
Для каждой строки в Calculated Column1 функция НЕ возвращает логическую противоположность заданного значения.
ЕСЛИ
ЕСЛИ(логический_тест> ,, значение_если_ ложь)
= IF ([Звонки]<200,'низкий', IF ([Calls]<300,'Средняя','высоко'))
ЕСЛИ ОШИБКА
ЕСЛИ ОШИБКА(ценность, значение_если_ошибка)
= ЕСЛИ ОШИБКА (25/0,9999)
6. Информационные функции
ISBLANK
ISBLANK(<ценность>)
= IF (ISBLANK ('CalculatedMeasures' [PreviousYearTotalSales]), BLANK (), ('CalculatedMeasures' [Total Sales] - 'CalculatedMeasures' [PreviousYearTotalSales]) / 'CalculatedMeasures' [PreviousYearTotalSales])
ISNUMBER
ISNUMBER(<ценность>)
= ЕСЛИ (ЕЧИСЛО (0),'Это число','Не число')
ISTEXT
ISTEXT(<ценность>)
= ЕСЛИ (ЕТЕКСТ ('текст'),'Текст','Не является текстом')
ISNONTEXT
ISNONTEXT(<ценность>)
= ЕСЛИ (БЕЗ ТЕКСТ ('текст'),'Не является текстом','Текст')
ОШИБКА
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. Текстовые функции
СЦЕПИТЬ
СЦЕПИТЬ(,)
= СЦЕПИТЬ ('Привет', 'Мир')
КОНКАТЕНАТЕКС
КОНКАТЕНАТЕКС(
,, [разделитель])
= CONCATENATEX (Сотрудники, [Имя] & «« & [Фамилия], «,»)
ИСПРАВЛЕНО
ИСПРАВЛЕНО(,,)
= ФИКСИРОВАННОЕ ([PctCost],3,один)
ЗАМЕНИТЬ
ЗАМЕНИТЬ(,,,)
= REPLACE ('Новые продукты' [код продукта],один,2,'ОБ')
ПОИСК
ПОИСК(, [, [] [,]])
= ПОИСК ('п','принтер')
Формула возвращает 4, потому что «n» - четвертый символ в слове «принтер».
ВЕРХНИЙ
ВЕРХНИЙ()
= UPPER (['Новые продукты' [код продукта])
Основы Power BI DAX: создание первой меры
Продажи за предыдущий квартал = РАССЧИТАТЬ (СУММА (Продажи [SalesAmount]), ПРЕДЫДУЩИЙ КВАРТАЛ (Календарь [DateKey]))