Applies ToExcel за Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Този бърз старт е за потребители, които са начинаещи в Power Pivot в Excel, или проекти с табличен модел, създадени в инструментите за данни на SQL Server. Целта му е да ви даде бързо и лесно въведение за това как можете да използвате изразите за анализ на данни (DAX), за да решите редица основни проблеми при моделирането на данни и аналитичните проблеми. Тази тема включва концептуална информация, поредица от задачи, които можете да изпълните, и няколко тестове, за да тествате това, което сте научили. След като завършите тази тема, трябва да имате добро разбиране на най-основните основни понятия в DAX.

Какво представлява DAX?

DAX е колекция от функции, оператори и константи, които могат да се използват във формула или израз за изчисляване и връщане на една или повече стойности. По-просто казано, DAX ви помага да създадете нова информация от данни, които вече са в модела.

Защо DAX е толкова важно?

Лесно е да създадете работна книга и да импортирате някои данни в нея. Можете дори да създавате обобщени таблици или обобщени диаграми, които показват важна информация, без да използвате никакви DAX формули. Но какво ще стане, ако трябва да анализирате критичните данни за продажбите в няколко категории продукти и за различни диапазони от дати? Или трябва да комбинирате важни данни за наличности от няколко таблици в различни източници на данни? Формулите на DAX предоставят тази възможност, както и много други важни възможности. Научете как да създавате ефективни DAX формули, което ще ви помогне да извлечете максимума от данните си. Когато получите необходимата ви информация, можете да започнете да решавате реални бизнес проблеми, които засягат долния ви ред. Това е бизнес разузнаването и DAX ще ви помогне да стигнете там.

Предварителни изисквания

Възможно е вече да сте запознати със създаването на формули в Microsoft Excel. Това знание ще ви помогне да разберете DAX, но дори и да нямате опит с формулите на Excel, описаните тук концепции ще ви помогнат веднага да започнете да създавате DAX формули и да решавате проблеми с бизнес разузнаването в реалния свят.

Ще се фокусираме специално върху разбирането на DAX формулите, използвани в изчисленията. Трябва вече да сте запознати с основните понятия както за изчисляемите колони , така и за мерките (известни също като изчисляеми полета), и двете са описани в "Помощ" на Power Pivot. Трябва също да сте запознати с Power Pivot в средата и инструментите за авторска работа на Excel.

Примерна работна книга

Най-добрият начин да научите DAX е да създадете някои основни формули, да ги използвате с действителни данни и да видите резултатите сами. Примерите и задачите тук използват примерната работна книга на Contoso dax Formulas.xlsx. Можете да изтеглите работната книга от http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. След като сте изтеглили работната книга на компютъра си, отворете я и след това отворете прозореца на Power Pivot.

Да започнем!

Ние ще очертаем dax около три много важни основни понятия: синтаксис, функции и контекст. Разбира се, има и други важни концепции в DAX, но разбирането на тези три концепции ще осигури най-добрата основа, върху която да изградите уменията си в DAX.

Синтаксис

Преди да създадете свои собствени формули, нека разгледаме синтаксиса на формулите на DAX. Синтаксисът включва различните елементи, които съставят формула, или по-просто, как се пише формулата. Нека например да разгледаме проста DAX формула, използвана за създаване на нови данни (стойности) за всеки ред в изчисляема колона, наречена Margin, в таблица factSales: (цветовете на текста на формулата са само за илюстративни цели)

Формула за изчисляема колона

Синтаксисът на тази формула включва следните елементи:

  1. Операторът за знак за равенство (=) показва началото на формулата и когато тази формула се изчислява, тя ще върне резултат или стойност. Всички формули, които изчисляват стойност, ще започват със знак за равенство.

  2. Колоната [SalesAmount] с препратка съдържа стойностите, от които искаме да извадим. Препратка към колона във формула винаги е оградена със скоби []. За разлика от формулите на Excel, които препращат към клетка, DAX формулата винаги препраща към колона.

  3. Математическият оператор за изваждане (-).

  4. Колоната [TotalCost] с препратка съдържа стойностите, които искаме да извадим от стойностите в колоната [SalesAmount].

Когато се опитвате да разберете как да прочетете DAX формула, често е полезно да разделите всеки от елементите на език, който мислите, и да говорите всеки ден. Например можете да прочетете тази формула като:

В таблицата FactSales , за всеки ред в изчисляемата колона Margin изчисли (=) стойност, като извадите (-) стойностите в колоната [ TotalCost ] от стойностите в колоната [ SalesAmount ].

Нека разгледаме друг тип формула, която се използва в мярка:

Формула за изчисляема колона

Тази формула включва следните елементи на синтаксиса:

  1. Името на мярката Сума на продажбите. Формулите за мерки могат да включват името на мярката, последвано от двоеточие, последвано от формулата за изчисление.

  2. Операторът за знак за равенство (=) показва началото на формулата за изчисление. Когато е изчислен, той ще върне резултат.

  3. Функцията SUM сумира всички числа в колоната [SalesAmount]. По-късно ще научите повече за функциите.

  4. Скобите () ограждат един или повече аргументи. Всички функции изискват поне един аргумент. Един аргумент предава стойност на функция.

  5. Таблицата FactSales, към която има препратка.

  6. Колоната [SalesAmount] в таблицата FactSales. С този аргумент функцията SUM знае в коя колона да агрегира SUM.

Можете да прочетете тази формула като:

За мярката , наименувана Сума на продажбите, изчислете (=) СУМАта на стойностите в колоната [ SalesAmount ] в таблицата FactSales .

Когато се постави в падащата зона Стойности в списък с полета на обобщена таблица, тази мярка изчислява и връща стойности, дефинирани от всяка клетка в обобщената таблица, например мобилни телефони в САЩ.

Обърнете внимание, че има няколко различни неща в тази формула в сравнение с формулата, която използвахме за изчисляемата колона Margin. По-конкретно, въведохме функция SUM. Функциите са предварително написани формули, които улесняват сложните изчисления и манипулации с числа, дати, часове, текст и др. По-късно ще научите повече за функциите.

За разлика от изчисляемата колона Margin по-рано, виждате колоната [SalesAmount] да е предшествана от таблицата FactSales, в която принадлежи колоната. Това е известно като име на колона в пълен вид, тъй като включва името на колоната, предхождано от името на таблицата. Колоните, към които има препратки в една и съща таблица, не изискват името на таблицата да бъде включено във формулата. Това може да направи дългите формули, които препращат към много колони, по-кратки и по-лесни за четене. Добра практика е обаче винаги да включвате името на таблицата във формулите за измерване дори когато сте в една и съща таблица.

Забележка: Ако името на таблица съдържа интервали, запазени ключови думи или забранени знаци, трябва да оградите името на таблицата в единични кавички. Трябва също да оградите имената на таблиците в кавички, ако името съдържа знаци извън диапазона от буквено-цифрови знаци ANSI, независимо дали езиковата променлива поддържа набора знаци, или не.

Много е важно формулите ви да имат правилния синтаксис. В повечето случаи, ако синтаксисът не е правилен, ще се върне синтактична грешка. В други случаи синтаксисът може да е правилен, но върнатите стойности може да не са такива, които очаквате. Power Pivot (и SQL Server Data Tools) включва IntelliSense; функция, използвана за създаване на синтактично коригиране на формули, като ви помага да изберете правилните елементи.

Нека създадем проста формула. Тази задача ще ви помогне да разберете допълнително синтаксиса на формулите и как функцията IntelliSense в лентата за формули може да ви помогне.

Задача: Създаване на проста формула за изчисляема колона

  1. Ако още не сте в прозореца на Power Pivot, в Excel, на лентата на Power Pivot щракнете върху Power Pivot прозорец.

  2. В прозореца на Power Pivot щракнете върху таблицата FactSales (раздел).

  3. Превъртете до най-дясната колона и след това в заглавката на колоната щракнете върху Добавяне на колона.

  4. Щракнете в лентата за формули в горната част на прозореца на конструктора на модели.

    Лента за формули на Power Pivot

    Курсорът сега се показва в лентата за формули. Лентата за формули е мястото, където можете да въведете формула за изчисляема колона или изчисляемо поле.

    Нека разгледаме за момент трите бутона отляво на лентата за формули.

    Formula bar

    Когато курсорът е активен в лентата за формули, тези три бутона стават активни. Най-левият бутон – X – е просто бутон за отказ. Продължете напред и щракнете върху него. Курсорът вече не се показва в лентата за формули и бутонът за отказ и бутонът за отметка вече не се показват. Продължете и щракнете отново в лентата за формули. Бутонът "Отказ" и бутонът за отметка сега се появяват отново. Това означава, че сте готови да започнете да въвеждате формула.

    Бутонът за отметка е бутонът за проверка на формула. Това не прави много, докато не въведете формула. Ще се върнем след малко.

    Щракнете върху бутона Fx . Ще видите, че се появява нов диалогов прозорец; диалоговия прозорец Вмъкване на функция. Диалоговият прозорец Вмъкване на функция е най-лесният начин да започнете да въвеждате DAX формула. Ще добавим функция към формула, когато създаваме мярка малко по-късно, но за момента не е необходимо да добавяте функция към формулата за изчисляема колона. Продължете напред и затворете диалоговия прозорец Вмъкване на функция.

  5. В лентата за формули въведете знак за равенство =, след което въведете отваряща квадратна скоба [. Ще видите малък прозорец с всички колони в таблицата FactSales. Това е IntelliSense в действие.

    Тъй като изчисляемите колони винаги се създават в активната таблица, в която се намирате, не е необходимо да предхождате името на колоната с името на таблицата. Продължете напред и превъртете надолу и след това щракнете двукратно върху [SalesQuantity]. Можете също да превъртите до желаното име на колона и след това да натиснете Tab.

    Курсорът сега е активен отдясно на [SalesQuantity].

  6. Въведете интервал и след това въведете оператор за изваждане – (знак минус) и след това въведете друг интервал.

  7. Сега въведете друга отваряща квадратна скоба [. Този път изберете колоната [ReturnQuantity] и след това натиснете клавиша Enter.

    Ако получите съобщение за грешка, погледнете внимателно синтаксиса. Ако е необходимо, сравнете я с формулата в изчисляемата колона Margin, описана по-горе.

    След като натиснете Enter, за да завършите формулата, думата Изчисляване се показва в лентата на състоянието в долната част на прозореца на Power Pivot. Тя върви бързо, въпреки че току-що изчислихте новите стойности за повече от три милиона реда.

  8. Щракнете с десния бутон върху заглавката на колоната и преименувайте колоната – NetSales.

Това е всичко! Току-що създадохте проста, но много мощна DAX формула. За всеки ред в таблицата FactSales формулата NetSales изчислява стойност, като изважда стойността в колоната [ReturnQuantity] от стойността в колоната [SalesQuantity]. Забележете как току-що казахме "За всеки ред". Това е поглед към друга много важна концепция в DAX; контекст на ред. По-късно ще научите повече за контекста на редовете.

Нещо наистина важно, което трябва да разберете, когато въвеждате оператор във формула в DAX, е типът данни в аргументите, които използвате. Ако например въведете следната формула = 1 & 2, върнатата стойност ще бъде текстова стойност "12". Това е така, защото операторът амперсанд (&) е за конкатенация на текст. DAX интерпретира тази формула за четене: Изчисляване на резултат чрез приемане на стойността 1 като текст и добавяне на стойност 2 като текст. Сега, ако въвеждате = 1 + 2, DAX прочита тази формула като: Изчисляване на резултат, като вземе числовата стойност 1 и добави числовата стойност 2. Разбира се, резултатът е "3", числова стойност. DAX изчислява резултантните стойности в зависимост от оператора във формулата, а не на базата на типа данни на колоните, използвани в аргумента. Типовете данни в DAX са много важни, но са извън обхвата на този "Бърз старт". За да научите повече за типовете данни и операторите във формулите на DAX, вж. Справочник за DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) в Books Online.

Да опитаме с друго. Този път ще създадете мярка, като въведете формулата и използвате IntelliSense. Не се притеснявайте твърде много, ако не разбирате напълно формулата. Важното тук е да научите как да създадете формула, като използвате няколко елемента заедно в правилния синтаксис.

Задача: Създаване на формула за мярка

  1. В таблицата FactSales щракнете в някоя празна клетка в областта за изчисляване. Това е областта от празни клетки точно под таблица в прозореца на Power Pivot.

Област за изчисляване на Power Pivot

  1. В лентата за формули въведете името Продажби предишно тримесечие:.

  2. Въведете знак за равенство =, за да започнете формулата за изчисление.

  3. Въведете първите няколко букви на ЛКД и след това щракнете двукратно върху функцията, която искате да използвате. В тази формула искате да използвате функцията CALCULATE .

  4. Въведете отваряща кръгла скоба (за да започнете аргументите, които трябва да се подадат на функцията CALCULATE.

    Обърнете внимание, че след въвеждането на отварящата кръгла скоба IntelliSense ви показва аргументите, необходими за функцията CALCULATE. Ще научите за аргументите след малко.

  5. Въведете първите няколко букви на таблицата FactSales и след това в падащия списък щракнете двукратно върху FactSales[Sales].

  6. Въведете запетая (,), за да зададете първия филтър, след което въведете, PRE и след това щракнете двукратно върху функцията PREVIOUSQUARTER .

    След като изберете функцията PREVIOUSQUARTER, се появява друга отваряща кръгла скоба, показваща, че е задължителен друг аргумент; този път за функцията PREVIOUSQUARTER.

  7. Въведете първите няколко букви dim и след това щракнете двукратно върху DimDate[DateKey].

  8. Затворете двата аргумента, подавани на функцията PREVIOUSQUARTER, и функцията CALCULATE, като въведете две затварящи кръгли скоби )).

    Сега формулата трябва да изглежда така:

    Продажби предишно тримесечие:=CALCULATE(ФактПродажби[Продажби], PREVIOUSQUARTER(DimDate[DateKey]))

  9. Щракнете върху бутона за проверка на формулата в лентата за формули, за да проверите формулата. Ако получите съобщение за грешка, проверете всеки елемент на синтаксиса.

Направихте го! Току-що създадохте мярка с помощта на DAX, а не лесна такава. Това, което ще направи тази формула, е да изчисли общите продажби за предишното тримесечие в зависимост от филтрите, приложени в обобщена таблица или обобщена диаграма.

Току-що сте въведени в няколко важни аспекта на формулите на DAX. Първо, тази формула включва две функции. Обърнете внимание, че функцията PREVIOUSQUARTER е вложена като аргумент, подаден на функцията CALCULATE . Формулите на DAX могат да съдържат до 64 вложени функции. Малко вероятно е една формула да съдържа толкова много вложени функции. Всъщност такава формула би била много трудна за създаване и отстраняване на грешки и вероятно няма да е много бърза.

В тази формула използвахте и филтри. Филтрите стесняват обхвата на това, което ще се изчислява. В този случай сте избрали един филтър като аргумент, който всъщност е друга функция. Ще научите повече за филтрите по-късно.

И накрая, използвахте функцията CALCULATE. Това е една от най-мощните функции в DAX. Докато създавате модели на данни и създавате по-сложни формули, вероятно ще използвате тази функция много пъти. Обсъждането на функцията CALCULATE е извън обхвата на този QuickStart, но когато познанията ви за DAX нарастват, обръщайте особено внимание на това.

Забележка: Обикновено, за да използвате функции за интелигентно време във формули на DAX, трябва да зададете колона с уникална дата, като използвате диалоговия прозорец Маркирай като таблица с дати. В работната книга Samples.xlsx формулата Contoso DAX колоната DateKey в таблицата DimDate е избрана като колона за уникална дата.

Допълнителен кредит

Може би питате: "Коя е най-простата формула на DAX, която мога да създам?" Отговорът на това е "формулата, която не е необходимо". И точно това можете да направите с помощта на стандартна агрегатна функция в мярка. Почти всеки модел на данни трябва да филтрира и изчислява върху агрегирани данни. Например функцията SUM в мярката Сума на продажбите, която видяхте по-рано, се използва за събиране на всички числа в определена колона. DAX включва и няколко други функции, които агрегират стойности. Можете автоматично да създавате формули с помощта на стандартните агрегирания с помощта на функцията "Автосумиране".

Допълнителна задача за кредит: Създаване на формула за мярка с помощта на функцията "Автосумиране"

  1. В таблицата FactSales превъртете до колоната ReturnQuantity и след това щракнете върху заглавката на колоната, за да изберете цялата колона.

  2. В раздела Начало , на лентата, в групата Изчисления щракнете върху бутона Автосумиране .

Автосумиране в Power Pivot

Щракнете върху стрелката надолу до Автосумиране и след това щракнете върху Средно (обърнете внимание и на другите стандартни функции за агрегиране, които можете да използвате).

Веднага се създава нова мярка с името Средна стойност на ReturnQuantity: последвано от формулата =AVERAGE([ReturnQuantity]).

Не беше ли лесно? Разбира се, не всички формули, които създавате, ще бъдат толкова прости. Но с помощта на функцията "Автосумиране" можете да създавате бързи и лесни формули с помощта на стандартни изчисления за агрегиране.

Това трябва да ви даде доста добро разбиране на синтаксиса, използван във формулите на DAX. Освен това сте запознати с някои наистина страхотни функции, като IntelliSense и AutoSum, за да ви помогнат да създавате бързи, лесни и точни формули. Разбира се, има много повече неща, които можете да научите за синтаксиса. Добро място да научите повече е DAX справочни материали или SQL книги онлайн.

Синтаксис: бърз запис

  1. Какво прави този бутон в лентата за формули?бутон за функция

  2. Какво винаги огражда име на колона в DAX формула?

  3. Как бихте написали формула за следното:В таблицата DimProduct, за всеки ред в изчисляемата колона UnitMargin, изчислете стойност чрез изваждане на стойности в колоната UnitCost от стойностите в колоната"Единична цена"?

Отговорите са предоставени в края на тази тема.

Функции

Функциите са предварително дефинирани формули, които извършват изчисления с помощта на конкретни стойности, наречени аргументи, в определен ред или структура. Аргументите могат да бъдат други функции, друга формула, препратки към колони, числа, текст, логически стойности като TRUE или FALSE или константи.

DAX включва следните категории функции: "Дата и час", "Информация", "Логически", "Математически", "Статистически", "Текст" и "Функции за интелигентно време". Ако сте запознати с функциите във формулите на Excel, много от функциите в DAX ще изглеждат подобно на вас; DAX функциите обаче са уникални по следните начини:

  • Функцията DAX винаги препраща към цяла колона или таблица. Ако искате да използвате само определени стойности от таблица или колона, можете да добавите филтри към формулата.

  • Ако трябва да персонализирате изчисленията ред по ред, DAX предоставя функции, които ви позволяват да използвате стойността на текущия ред или свързана стойност като вид аргумент, за да извършвате изчисления, които варират според контекста. По-късно ще научите повече за контекста.

  • DAX включва много функции, които връщат таблица, а не стойност. Таблицата не се показва, но се използва за въвеждане на данни за други функции. Можете например да извлечете таблица и след това да преброите различните стойности в нея или да изчислите динамични суми между филтрирани таблици или колони.

  • DAX включва разнообразни функции за интелигентно време. Тези функции ви позволяват да дефинирате или избирате диапазони от дати и да извършвате динамични изчисления на базата на тях. Можете например да сравните сумите за паралелните периоди.

Понякога е трудно да се разбере кои функции може да се наложи да използвате във формула. Power Pivot и конструкторът на таблични модели в SQL Server Data Tools, включват функцията Insert Function – диалогов прозорец, който ви помага да избирате функции по категория и предоставя кратки описания за всяка функция.Вмъкване на функция

Да създадем нова формула, която включва функция, която ще изберете с помощта на функцията Вмъкване на функция:

Задача: Добавяне на функция към формула с помощта на "Вмъкване на функция"

  1. В таблицата FactSales превъртете до най-дясната колона и след това в заглавката на колоната щракнете върху Добавяне на колона.

  2. В лентата за формули въведете знак за равенство =

  3. Щракнете върху бутона Вмъкване на функция . Вмъкване на функция Това отваря диалоговия прозорец Вмъкване на функция .

  4. В диалоговия прозорец Вмъкване на функция щракнете върху списъчното поле Избор на категория . По подразбиране е избрано Всички , а всички функции в категорията Всички са изброени по-долу. Това са много функции, така че ще искате да филтрирате функциите, за да улесните намирането на типа на функцията, която търсите.

  5. За тази формула искате да върнете някои данни, които вече съществуват в друга таблица. За тази цел ще използвате функция в категорията Филтър. Продължете и щракнете върху категорията Филтър и след това в Избор на функция превъртете надолу и щракнете двукратно върху функцията RELATED. Щракнете върху OK , за да затворите диалоговия прозорец Вмъкване на функция .

  6. Използвайте IntelliSense, за да ви помогне да намерите и изберете колоната DimChannel[ChannelName].

  7. Затворете формулата и след това натиснете клавиша Enter.

  8. След като натиснете Enter, за да завършите формулата, думата Изчисляване се появява в лентата на състоянието в долната част на прозореца Power Pivot. Сега ще видите, че току-що сте създали нова колона в таблицата FactSales с информация за канала от таблицата DimChannel.

  9. Преименувайте канала на колоната.

    Вашата формула трябва да изглежда така: =RELATED(DimChannel[ChannelName])

Току-що сте въведени в друга много важна функция в DAX – функцията RELATED . Функцията RELATED връща стойности от друга таблица. Можете да използвате RELATED, при условие че има релация между таблицата, в която се намирате в момента, и таблицата, съдържаща стойностите, които искате да получите. Разбира се, функцията RELATED има огромни възможности. В този случай сега можете да включите канал за продажби за всяка продажба в таблицата FactSales. Сега можете да скриете таблицата DimChannel от списъка с полета на обобщената таблица, което прави по-лесна навигацията и виждането само на най-важната информация, от която наистина имате нужда. Подобно на функцията CALCULATE, описана по-рано, функцията RELATED е много важна и вероятно ще я използвате много пъти.

Както виждате, функциите в DAX могат да ви помогнат да създавате много мощни формули. Ние наистина се докоснахме само до основите на функциите. С подобряването на уменията ви в DAX ще създавате формули с помощта на много различни функции. Едно от най-добрите места за научаване на подробности за всички функции на DAX е в справката за изразите за анализ на данни (DAX).

Бърз преглед на функциите

  1. Какво винаги препраща една функция?

  2. Може ли една формула да съдържа повече от една функция?

  3. Коя категория функции бихте използвали, за да конкатенирате два текстови низа в един низ?

Отговорите са предоставени в края на тази тема.

Контекст

Контекстът е една от най-важните понятия в DAX, които трябва да разберете. Има два типа контекст в DAX; контекст на ред и контекст на филтър. Първо ще разгледаме контекста на реда.

Контекст на ред

Контекстът на реда най-лесно се смята за текущ ред. Например помните ли изчисляемата колона Margin, която видяхте по-рано, когато се запознахте със синтаксиса? Формулата =[SalesAmount] – [TotalCost] изчислява стойност в колоната Margin за всеки ред в таблицата. Стойностите за всеки ред се изчисляват от стойностите в две други колони, [SalesAmount] и [TotalCost] в един и същ ред. DAX може да изчисли стойностите за всеки ред в колоната Margin, защото има контекст: За всеки ред приема стойности в колоната [TotalCost] и ги изважда от стойностите в колоната [SalesAmount].

В избраната клетка, показана по-долу, стойността 49,54 лв. в текущия ред е изчислена чрез изваждане на стойността 51,54 лв. в колоната [TotalCost] от стойността 101,08 лв. в колоната [Сума_продажби].

Контекст на реда в Power Pivot

Контекстът на реда не се прилага само към изчисляемите колони. Контекстът на реда се прилага и всеки път, когато формула има функция, която прилага филтри за идентифициране на един ред в таблица. Функцията по своята същност ще прилага контекст на ред за всеки ред на таблицата, по който се филтрира. Този тип контекст на ред най-често се отнася за мерки.

Контекст на филтъра

Контекстът на филтъра е малко по-труден за разбиране от контекста на реда. Най-лесно можете да си представите контекста на филтъра като: Един или повече филтри, приложени в изчисление, което определя резултат или стойност.

Контекстът на филтъра не съществува вместо контекста на реда; вместо това се прилага в допълнение към контекста на реда. Например за да стесните допълнително стойностите, които да се включат в изчисление, можете да приложите контекст на филтър, който не само задава контекста на реда, но също така задава само конкретна стойност (филтър) в контекста на този ред.

Контекстът на филтъра лесно се вижда в обобщените таблици. Например когато добавите TotalCost към областта Стойности и след това добавите Година и регион към ред или колони, вие дефинирате контекст на филтър, който избира подмножество от данни на базата на дадена година и регион.

Защо контекстът на филтъра е толкова важен за DAX? Тъй като контекстът на филтъра може най-лесно да се приложи чрез добавяне на етикети на колони и редове и сегментатори в обобщена таблица, контекстът на филтъра може да се приложи и в DAX формула, като се дефинира филтър с помощта на функции като ALL, RELATED, FILTER, CALCULATE, по релации и по други мерки и колони. Нека например да разгледаме следната формула в мярка, наречена StoreSales:

Формула

Очевидно тази формула е по-сложна от някои от другите формули, които сте видели. За да разберем по-добре обаче тази формула, можем да я разделим, подобно на другите формули.

Тази формула включва следните елементи на синтаксиса:

  1. Името на мярката StoreSales, последвано от двоеточие :.

  2. Операторът за знак за равенство (=) показва началото на формулата.

  3. Функцията CALCULATE оценява израз като аргумент в контекст, модифициран от зададените филтри.

  4. Скобите () ограждат един или повече аргументи.

  5. Мярка [Продажби] в същата таблица като израз. Мярката за продажби има формулата: =SUM(FactSales[SalesAmount]).

  6. Запетая (,) разделя всеки филтър.

  7. Колоната, към която има препратка, и конкретната стойност DimChannel[ChannelName] ="Store" като филтър.

Тази формула ще гарантира само стойности за продажби, дефинирани от мярката за продажби, като филтър, се изчисляват само за редове в колоната DimChannel[ChannelName] със стойността "Store" като филтър.

Както можете да си представите, възможността да дефинирате контекст на филтър във формула има огромна и мощна възможност. Възможността за препращане само към конкретна стойност в свързана таблица е само един такъв пример. Не се притеснявайте, ако не разберете напълно контекста веднага. Когато създавате свои собствени формули, ще разбирате по-добре контекста и защо е толкова важно в DAX.

Контекстен бърз текст

  1. Какви са двата типа контекст?

  2. Какво представлява контекстът на филтъра?

  3. Какво представлява контекстът на реда?

Отговорите са предоставени в края на тази тема.

Резюме

Сега, след като вече сте запознати с най-важните понятия в DAX, можете да започнете да създавате DAX формули за изчисляеми колони и мерки сами. DAX наистина може да бъде малко трудно да се научат, но има много ресурси, налични за вас. След като прочетете тази тема няколко пъти и експериментирате с някои от вашите собствени формули, можете да научите повече за други концепции и формули на DAX, които могат да ви помогнат да решите своите собствени бизнес проблеми. Има много ресурси на DAX, които са на разположение за вас в помощта на Power Pivot, sql Server Books Online, технически документи и блогове както от Microsoft, така и от водещи професионалисти за бизнес разузнаване. Wiki сайтът на центъра с ресурси на DAX (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) е чудесно място за начало. Препратката към изрази за анализ на данни (DAX) също е чудесен ресурс. Не забравяйте да го запишете в "Предпочитани".

DaX в бялата документация за табличния модел на BI, налична за изтегляне (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409), предоставя по-подробен поглед върху концепциите, въведени тук, както и много други разширени концепции и формули. Този технически документ също използва същия примерен Formulas.xlsx работна книга на Contoso DAX, която вече имате.

Отговори на quickQuiz

Синтаксис:

  1. Отваря функцията Вмъкване на функция.

  2. Квадратни скоби [].

  3. =[Единична цена] – [Единична цена]

Функции:

  1. Таблица и колона.

  2. Да. Една формула може да съдържа до 64 вложени функции.

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

Контекста:

  1. Контекст на ред и контекст на филтъра.

  2. Един или повече филтри в изчисление, което определя една стойност.

  3. Текущият ред.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.