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

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

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

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

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

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

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

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

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

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

Нека започнем!

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

Синтаксис

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. Препратка таблица FactSales.

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

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

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

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

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

За разлика от изчисляемата колона "Полета" по-рано, виждате, че колоната [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.

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

    След като натиснете 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. Въведете първите няколко букви CAL и след това щракнете двукратно върху функцията, която искате да използвате. В тази формула искате да използвате функцията CALCULATE.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Синтаксис QuickQuiz

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

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

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

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

Функции

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

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

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

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

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

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

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

Вмъкване на функция

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

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

  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).

Функции QuickQuiz

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

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

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

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

Контекст

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

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

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

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

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

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

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

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

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

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

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

Формула

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

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

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

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

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

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

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

  6. Всеки филтър се разделя със запетая (;).

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

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

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

Контекстно quickQuiz

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

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

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

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

Резюме

Сега, след като имате основно разбиране за най-важните концепции в DAX, можете да започнете да създавате DAX формули за изчисляеми колони и мерки сами. DAX наистина може да бъде малко труден за научаване, но има много ресурси, които са достъпни за вас. След като прочетете тази тема няколко пъти и експериментирате с някои от вашите собствени формули, можете да научите повече за други DAX концепции и формули, които могат да ви помогнат да решите собствените си бизнес проблеми. Има много ресурси за DAX, които са налични за вас в Power Pivot Помощ, SQL Server Книги онлайн, whitepapers и блогове както от 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, която вече имате.

Отговори на QuickQuiz

Синтаксис:

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

  2. Скоби [].

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

Функции:

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

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

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

Контекст:

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

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

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

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

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Доколко сте доволни от качеството на превода?
Какво е повлияло на вашия потребителски опит?

Благодарим ви за обратната връзка!

×