Този блог е създаден по същество за потребители, нови за и има за цел да ви даде бърза и лесна разходка по формула, наречена език Изрази за анализ на данни (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 около три основни концепции: Синтаксис , Контекст , и Функции .
Разбира се, тук има и други важни концепции, но разбирането на тези три ще осигури най-добрата основа, върху която ще изградите уменията си.
Синтаксис
The Синтаксис се състои от различни компоненти, които съставят формула и как е написана. Lпогледнете тази проста формула DAX.
Когато се опитвате да разберете формула DAX, често е полезно да разделите всеки от елементите на език, който мислите и говорите всеки ден. И така, тази формула включва следните синтаксисни елементи:
I. Общо продажби е името на мярката.
II. The оператор на знак за равенство (=) обозначава началото на формулата.
III. СУММА сумира всички числа в колоната, Продажби [SalesAmount] .
IV. Има такива скоби () които обграждат израз, съдържащ един или повече аргументи. Всички функции изискват поне един аргумент.
V. Продажби е посочената таблица.
НИЕ. An аргумент предава стойност на функция. Препратената колона [Размер на продажбите] е аргумент, с който функцията SUM знае колоната, в която трябва да агрегира SUM.
Просто казано, можете да го прочетете като, ' За мярката, наречена Общи продажби, изчислете (=) СУМАТА на стойностите в колоната [SalesAmount] в таблицата Продажби. '
& пикиРедакторът Power BI DAX включва функция за предложения, която ви помага да създавате синтактично правилни формули, като ви предлага правилните елементи.
Контекст
Контекст е една от най-важните от 3-те концепции на DAX. Когато се говори за контекст, това може да се отнася за един от двата типа Ред контекст и Контекст на филтъра .
Използва се предимно, докато се говори Мерки , Ред-контекст се смята най-лесно за текущия ред. Прилага се винаги, когато формула има функция, която прилага филтри за идентифициране на един ред в таблица.
Филтър-контекст е малко по-трудно за разбиране от контекста на реда. Най-лесно можете да мислите за контекста на филтъра като един или повече филтри, приложени в изчисление. TheКонтекстът на филтъра не съществува вместо контекста на реда. По-скоро се прилага в допълнение към първото. Погледнете следната формула DAX.
Тази формула включва следните синтаксисни елементи:
I. Име на мярката Магазин продажби .
II. The оператор на знак за равенство (=) обозначава началото на формулата.
III. The ИЗЧИСЛИ функция оценява израз като аргумент.
IV. Скоби () съраунд израз, съдържащ един или повече аргументи.
V. Мярка [Общо продажби] в същата таблица като израз.
НИЕ. ДА СЕ запетая (,) разделя първия аргумент на израза от аргумента на филтъра.
ИДВАШ ЛИ. Напълно квалифицираната референтна колона, Канал [ChannelName] е нашият ред-контекст. Всеки ред в тази колона посочва канал, магазин, онлайн и т.н.
VIII. Конкретната стойност, Съхранявайте се използва като филтър. Това е нашият филтър-контекст.
Тази формула гарантира че Общата мярка за продажби се изчислява само за редове в колоната Channel [ChannelName] със стойността „Store“, като филтър.
Функции
Функции са предварително дефинирани, структурирани и подредени формули. Те извършват изчисления, използвайки аргументи предадени на тях. Тези аргументи могат да бъдат числа, текст, логически стойности или други функции.
Основи на Power BI DAX: Изчислени колони и мерки
В този блог ще се съсредоточим върху формулите Power BI DAX, използвани при изчисленията, през Мерки и Изчислени колони .
Изчислени колони
Когато създавате модел на данни на Power BI Desktop, можете да разширите таблица, като създадете нови колони. Съдържанието на колоните се дефинира чрез DAX израз, оценен ред по ред или в контекста на текущия ред в тази таблица.
В моделите на данни за DAX обаче всички изчислени колони заемат място в паметта и се изчисляват по време на обработката на таблицата.
Това поведение е полезно, за да доведе до по-добро потребителско изживяване, но използва ценна RAM и следователно е лош навик в производството, тъй като всяко междинно изчисление се съхранява в RAM и губи ценно пространство.
Мерки
Има и друг начин за дефиниране на изчисления в DAX модел, полезен, ако трябва да работите с обобщени стойности, вместо на ред по ред. Тези изчисления са мерки. Едно от изискванията на DAX е, че дадена мярка трябва да бъде дефинирана в таблица. Мярката обаче всъщност не принадлежи към таблицата. Така че, можете да преместите мярка от една таблица в друга, без да губите нейната функционалност.
Изчислени колони спрямо мерки
Мерките и изчислените колони използват изрази DAX. Разликата е в контекста на оценката. Мярката се оценява в контекста на клетката, оценена в отчет или в DAX заявка, докато изчислената колона се изчислява на ниво ред в таблицата, към която принадлежи.
Дори да изглеждат подобни, има голяма разлика между изчислените колони и мерките. Стойността на изчислената колона се изчислява по време на опресняване на данните и използва текущия ред като контекст, който не зависи от взаимодействието на потребителя в отчета.
Следователно трябва да дефинирате изчислена колона, когато искате да направите следното
- Поставете изчислените резултати в слайсър или вижте резултатите в редове или колони в обобщена таблица (за разлика от областта на стойностите) или в осите на диаграма или използвайте резултата като условие за филтриране в DAX заявка.
- Дефинирайте израз, който е строго обвързан с текущия ред. Например Price * Количеството не може да работи средно или върху сума от двете колони.
- Категоризирайте текста или числата. Например диапазон от стойности за мярка.
Мярката работи върху обобщения на данни, дефинирани от текущия контекст, което зависи от филтъра, приложен в отчета - като отрязване на редове, редове и колони в обобщена таблица или оси и филтри, приложени към диаграма.
Така че, трябва да дефинирате мярка, когато искате да покажете получените стойности на изчисление, които отразяват потребителски селекции, като
- Когато изчислявате процента на печалбата върху определен избор от данни.
- Когато изчислявате съотношения на продукт в сравнение с всички продукти, но запазвате филтъра както по година, така и по регион.
Основи на Power BI DAX: Видове функции в DAX
1. Обобщени функции
МИН
Тази функция DAX rизвежда минималната числова стойност в колона или между два скаларни израза.
Синтаксис
МИН()
Пример
=МИН([ResellerMargin])
МИНА
Тази функция DAX rизвежда минималната стойност в колона, включително всички логически стойности и числа, представени като текст.
Синтаксис
МИНА()
Пример
=МИНА(([Пощенски код])
MINX
Тази функция DAX се връщаминималната числова стойност, която е резултат от оценяване на израз за всеки ред от таблица.
Синтаксис
Пример Тази функция DAX rизвежда максималната стойност в колона, включително всички логически стойности и числа, представени като текст. Синтаксис Пример Тази функция DAX rизвежда максималната стойност в колона, включително всички логически стойности и числа, представени като текст. Синтаксис Пример Тази функция DAX се връщамаксималната числова стойност, която е резултат от оценяване на израз за всеки ред на таблица. Синтаксис Пример Тази функция DAX adds всички числа в колона. Синтаксис Пример Тази функция DAX rизвежда средната аритметична стойност на стойностите в колона. Синтаксис Пример Тази функция DAX rизвежда сумата от израз, оценен за всеки ред в таблица. Синтаксис Пример Тази функция DAX cизчислява средната аритметична стойност на набор от изрази, оценени върху таблица. Синтаксис Пример Това е функция DAX, използвана за връщане на различен брой елементи в колона. Така че, ако има няколко номера на един и същ елемент, тази функция ще го отчете като един елемент. Синтаксис Пример Това е функция DAX, използвана за връщане на броя на елементите в колона. Така че, ако има няколко номера на един и същ елемент, тази функция ще го отчете като отделни елементи, а не като един елемент. Синтаксис Примери Това е функция DAX, използвана за връщане на броя елементи в колона, която не е празна. Синтаксис Пример Това е функция DAX, коятоотчита броя на редовете в посочената таблица или в таблица, дефинирана от израз. Синтаксис Пример Това е функция DAX, коятоброи броя на празните клетки в колона. Синтаксис Пример Тази функция DAX rизвежда посочената дата във формат Дата-Час. Синтаксис Пример Тази функция DAX rизвежда посочения час като число от 0 до 23 (12:00 ч. до 11:00 ч.). Синтаксис Пример Тази функция DAX rизвежда текущата дата. Синтаксис Тази функция DAX rизвежда текущата дата и час във формат Date-Time. Синтаксис Тази функция DAX rизвежда датата във формат Дата-Час на последния ден от месеца, преди или след определен брой месеци. Синтаксис Пример Тази функция DAX rизвежда абсолютната стойност на даденото число. Синтаксис Пример Тази функция DAX rизвежда стойността на e, повишена в степента на дадено число. Синтаксис Пример Тази функция DAX rизвежда факториал на число. Синтаксис Пример Тази функция DAX rизвежда естествения дневник на даденото число. Синтаксис Пример Тази функция DAX rизвежда дневника с основата на дадения номер. Синтаксис Пример Тази функция DAX rизвежда стойността на Pi. Синтаксис Тази функция DAX rизвежда стойността на първия аргумент, издигнат до степента на втория аргумент. Синтаксис Пример Тази функция DAX извършва разделяне rизвежда цялата част от частното. Синтаксис Пример Тази функция DAX връща знака на дадено число. Синтаксис Пример Тази функция DAX rизвежда квадратния корен от даденото число. Синтаксис Пример Тази функция DAX изпълнява логическо И (съвместно) върху два израза. За да върне ИСТИНАТА, трябва да бъдат изпълнени и двете посочени условия. Синтаксис Пример Тази функция DAX изпълнява логическо ИЛИ (дизюнкция) на два израза. За ИЛИ да върне true, трябва да е изпълнено едно от двете посочени условия. Синтаксис Пример Тази функция DAX изпълнява логически NOT (отрицание) за даден израз. Синтаксис Пример Тази функция DAX тества поредица от входове за този, който отговаря на условието, посочено в аргумента. Синтаксис Пример Тази функция DAX eоценява израз и връща определена стойност, ако изразът връща грешка. Синтаксис Пример Тази функция DAXвръща TRUE или FALSE след° Спроверка дали дадена стойност е празна. Синтаксис Пример Тази функция DAXвръща TRUE или FALSE след° Спроверка дали дадена стойност е числова. Синтаксис Пример Тази функция DAXвръща TRUE или FALSE след° Спроверка дали дадена стойност е текст. Синтаксис Пример Тази функция DAXвръща TRUE или FALSE след° Спроверяване дали дадена стойност е нетекстова. Синтаксис Пример Тази функция DAXвръща TRUE или FALSE след° Спроверка дали дадена стойност е грешка. Синтаксис Пример Тази функция DAX joins два текстови низа в един. Синтаксис Пример Тази функция DAXрезултатът от израз, оценен за всеки ред в таблица. Синтаксис Пример Тази функция DAX rизвежда число до посочения брой десетични знаци и връща резултата като текст. Синтаксис Пример Тази функция DAXзамества част от текстов низ, базиран на броя символи, които сте посочили, с различен текстов низ. Синтаксис Пример Тази функция DAX rизвежда броя на символите, при които за първи път е намерен конкретен текстов низ. Синтаксис Пример Тази функция DAX се връщатекстов низ с всички главни букви. Синтаксис Пример Предпоставка: Ще трябва да отворите този даден файл на Power BI Desktop . Тъй като предполагам, че това ще е първото ви, ще напиша този детайл много подробно, за да можете да го следвате. В списъка с полета на Преглед на отчета , щракнете с десния бутон върху Продажби таблица, последвана от Нова мярка . Сменете Мярка чрез въвеждане на ново име на мярка Продажби за предходното тримесечие, в Лента с формули . В тази формула искате да използвате ИЗЧИСЛИ функция. Така че, след знака за равенство, въведете първите няколко букви ЛКД и след това щракнете двукратно върху функцията, която искате да използвате. Функцията CALCULATE има поне два аргумента. Първият е изразът, който трябва да бъде оценен, а вторият е a Филтър . След отварянето скоби ( за ИЗЧИСЛИ функция, тип СУММА последвано от друга отваряща скоба ( да предаде аргумент на СУММА функция. Започнете да пишете Сол и след това изберете Продажби [SalesAmount] , последвано от затваряща скоба ) . Това е първият аргумент на израза за нашите ИЗЧИСЛИ функция. Въведете a запетая (,) последвано от интервал за указване на първия филтър и след това тип ПРЕДИШЕН ЧАСТ . Това ще бъде нашият филтър. Ще използвате ПРЕДИШЕН ЧАСТ функция за разузнаване на времето за филтриране СУММА резултати от предходното тримесечие. След отварящата скоба ( за функцията PREVIOUSQUARTER напишете Календар [DateKey] . The ПРЕДИШЕН ЧАСТ функция има един аргумент, колона, съдържаща непрекъснат диапазон от дати. В нашия случай това е DateKey колона в таблицата на календара. Уверете се, че и аргументите, които се предават на PREVIOUSQUARTER, и функцията CALCULATE са затворени, като въведете две затворени скоби )) . Сега вашата формула трябва да изглежда по следния начин Щракнете отметката в лентата с формули или натиснете Enter, за да потвърдите формулата. След като добавите това към вашия модел, voila! Току-що създадохте мярка с помощта на DAX, и то не лесна. Това, което прави тази формула е изчислете общите продажби за предходното тримесечие в зависимост от филтрите, приложени в отчет. Така че, нека, ако трябваше да сложим Размер на продажбите и нашите нови Продажби от предходното тримесечие измерете в диаграма и след това добавете Година и QuarterOfYear като Слайсери, бихме получили нещо по следното След като вече разбирате основно понятията в Power BI DAX, можете да започнете да създавате DAX формули за мерки сами. Всъщност може да е малко трудно да се научиш, ноDAX съществува от няколко години ив мрежата има много ресурси. След като прочетете този блог и малко експерименти, можете да се научите да намирате бизнес решения чрез Power BI DAX.
MINX(
,)
=MINX(ФИЛТЪР(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Товарни] + InternetSales [TaxAmt])
МАКС
МАКС()
=МАКС([ResellerMargin])
МАКС
МАКС()
какво е приложение в salesforce
=МАКС(([Пощенски код])
MAXX
MAXX(
,)
=MAXX(ФИЛТЪР(InternetSales, InternetSales [SalesTerritoryKey] =5), InternetSales [Товарни] + InternetSales [TaxAmt])
СУММА
СУММА()
=СУММА(Търговски офис])
СРЕДНО АРИТМЕТИЧНО
СРЕДНО АРИТМЕТИЧНО()
=СРЕДНО АРИТМЕТИЧНО(InternetSales [ExtendedSalesAmount])
sumx
sumx(
,)
=sumx(ФИЛТЪР(InternetSales, InternetSales [SalesTerritoryID] =5), [Товарни превози])
AVERAGEX
AVERAGEX(
,)
=AVERAGEX(InternetSales, InternetSales [товари] + InternetSales [TaxAmt])
2. Брой функции
DISTINCTCOUNT
DISTINCTCOUNT()
=DISTINCTCOUNT(ResellerSales_USD [SalesOrderNumber])
БРОЯ
БРОЯ()
=БРОЯ([ShipDate])
КОНТА
КОНТА()
=КОНТА('Reseller' [Телефон])
БРОЙНИ
БРОЙНИ(
)
=БРОЙНИ('Поръчки')
COUNTBLANK
COUNTBLANK()
=COUNTBLANK(Дистрибутор [BankName])
3. Функции за дата и час
ДАТА
ДАТА(<година>,<месец>,<ден>)
=ДАТА(2019 г.,12, 17)
ЧАС
ЧАС()
=ЧАС(„Поръчки“ [TransactionTime])
ДНЕС
ДНЕС()
СЕГА
СЕГА()
EOMONTH
EOMONTH(,)
=EOMONTH(„3 март 2008 г.“,1.5)
4. Математически функции
РАЗДЕЛ
РАЗДЕЛ()
=ABS ([DealerPrice] - [ListPrice])
Годен до
Годен до()
= Годен ([Захранване])
ФАКТ
ФАКТ()
= ФАКТ ([Стойности])
LN
LN()
= LN ([Стойности])
ЛОГ
ЛОГ(,)
Всички следващи връщат същия резултат, 2.
= LOG (100,10)
= LOG (100)
= LOG10 (100)
PI
PI()
МОЩНОСТ
МОЩНОСТ(,<мощност>)
= МОЩНОСТ (5,2)
КАЧЕСТВЕН
КАЧЕСТВЕН(,)
= КОЛИЧЕСТВО (5,2)
ЗНАК
ЗНАК()
= ПОДПИС (([Продажна цена] - [Разходна цена]))
SQRT
SQRT()
= SQRT (25)
5. Логически функции
И
И(,)
= АКО (И (10>9, -10 <-един),„Всичко вярно“,„Едно или повече фалшиви“
Тъй като и двете условия, предадени като аргументи, на функцията И са верни, формулата връща „Всички вярно“.
ИЛИ
ИЛИ(,)
= АКО (ИЛИ (10>9, -10> -един),'Вярно',„Невярно“
Тъй като едно от условията, предадено като аргументи, на функцията OR е вярно, формулата връща „Вярно“.
НЕ
НЕ()
= НЕ ([Изчислена колона1])
За всеки ред в Изчислена колона1 функцията NOT връща логическата противоположност на дадената стойност.
АКО
АКО(logic_test> ,, value_if_false)
= IF ([Обаждания]<200,'ниско', IF ([Обаждания]<300,'среден','Високо'))
IFERROR
IFERROR(стойност, value_if_error)
= IFERROR (25/0,9999)
6. Информационни функции
ISBLANK
ISBLANK(<стойност>)
= IF (ISBLANK ('CalculatedMeasures' [PreviousYearTotalSales]), BLANK (), ('CalculatedMeasures' [Total Sales] - 'CalculatedMeasures' [PreviousYearTotalSales]) / 'CalculatedMeasures' [PreviousYearTotalSales])
БРОЙ
БРОЙ(<стойност>)
= IF (ISNUMBER (0),„Е номер“,„Не е номер“)
ИСТЕКСТ
ИСТЕКСТ(<стойност>)
= IF (ISTEXT ('текст'),„Текст“,„Е нетекстово“)
ИСНОНТЕКСТ
ИСНОНТЕКСТ(<стойност>)
= АКО (ISNONTEXT ('текст'),„Е нетекстово“,„Текст“)
ISERROR
ИСЕРОЕ(<стойност>)
= IF (ISERROR (SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSales_USD' [SalesAmount_USD])), BLANK (), SUM ('ResellerSales_USD' [SalesAmount_USD]) / SUM ('InternetSalesAmd_USD] [USD]
7. Текстови функции
КОНКАТЕНАТ
КОНКАТЕНАТ(,)
= CONCATENATE („Здравей“, „Свят“)
java скрипт изскачащо съобщение -
КОНКАТЕНАТЕКС
КОНКАТЕНАТЕКС(
,, [разделител])
= CONCATENATEX (Служители, [FirstName] & ““ & [LastName], “,“)
ОПРАВЕНО
ОПРАВЕНО(,,)
= ОПРАВЕНО ([PctCost],3,един)
ЗАМЕНЕТЕ
ЗАМЕНЕТЕ(,,,)
= REPLACE ('Нови продукти' [Код на продукта],един,2,„OB“)
ТЪРСЕНЕ
ТЪРСЕНЕ(, [, [] [,]])
= ТЪРСЕНЕ ('н','принтер')
Формулата връща 4, защото „n“ е четвъртият знак в думата „принтер“.
ГОРЕН
ГОРЕН()
= UPPER (['Нови продукти' [Код на продукта])
Основи на Power BI DAX: Създаване на първата ви мярка
Продажби за предходното тримесечие = ИЗЧИСЛЕТЕ (СУМА (Продажби [Продажби)], ПРЕДИШЕН КВАРТЪР (Календар [ДатаКей)])