Изрази за анализ на данни (DAX) в Power Pivot

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

Изрази за анализ на данни (DAX) звучи малко смущаващи в началото, но не позволявайте на името ви измамят. Основи на DAX са наистина съвсем лесни за разбиране. Първите неща първо - DAX не е език за програмиране. DAX е на езика. Можете да използвате DAX да дефинирате персонализирани изчисления за Изчисляеми колони и мерки (известен също като изчисляеми полета). DAX включва някои от функциите, използвани във формули на Excel и допълнителни функции, създаден за работа с релационни данни и изпълнява динамично агрегиране.

Подробна информация за формулите на DAX

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

От друга страна, формулите на DAX се различават по следните важни характеристики:

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

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

  • Функции за интелигентно времев DAX позволяват изчисления посредством диапазони от дати и сравняването на резултатите в паралелни периоди.

Къде се използват формулите на DAX

Можете да създавате формули в Power Pivot в изчисляеми columns или в изчислени fields.

Изчисляеми колони

Изчисляемата колона е колона, която добавяте към съществуваща таблица на Power Pivot. Вместо да поставяте или импортирате стойности в колоната, създавате формула DAX, която определя стойностите на колоната. Ако включите таблицата на Power Pivot в обобщена таблица (или обобщена диаграма), може да използвате изчисляемата колона така, както и всяка друга колона с данни.

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

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

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

За по-подробна информация вж. Изчисляеми колони в Power Pivot.

Мерки

Мярка е формула, която е създадена специално за използване в обобщена таблица (или обобщена диаграма), която използва Power Pivot данни. Мерки могат да се базират на стандартни агрегатни функции, като например брой или сума, или можете да дефинирате ваша собствена формула с помощта на DAX. Мярка се използва в областта на стойностите на отчет с обобщена таблица. Ако искате да поставите изчислени резултати в друга област на обобщена таблица, използвайте изчисляема колона.

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

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

За по-подробна информация вижте мерки в Power Pivot.

Създаване на формули посредством лентата за формули

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

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

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

За повече информация и обяснение "стъпка по стъпка" как се създават формули вж. Създаване на формули за изчисления в Power Pivot.

Съвети за употребата на автоматичното довършване

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

Дефинирани имена, които сте създали като константи, не се показват в падащото меню на автоматичното довършване, но пак може да ги въведете.

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

Употреба на няколко функции във формула

Можете да влагате функции, което означава, че използвате резултатите от една функция като аргумент на друга. В изчисляемите колони може да вложите до 64 нива на функции. Влагането обаче може да затрудни създаването на формули или отстраняването на неизправности при тях.

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

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

Сравнение на функциите на DAX и Excel

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

  • Много функции на DAX имат същото име и поведение като функциите на Excel, но са модифицирани, за да приемат различни типове входни данни, а в някои случаи може да върнат и различен тип данни. Обикновено не можете да използвате функции на DAX във формула на Excel или да използвате формули на Excel в Power Pivot без известни промени.

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

  • Функциите на DAX за дата и час връщат данни от тип datetime. За разлика от тях функциите за дата и час на Excel връщат цяло число, което представлява дадена дата като сериен номер.

  • Много от новите функции на DAX връщат таблица със стойности или извършват изчисления въз основа на таблица със стойности като входни данни. За разлика от това Excel няма функции, които връщат таблица, но някои функции могат да работят с масиви. Способността да прави лесно препратки към цели таблици и колони е нова функция в Power Pivot.

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

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

Типове данни в DAX

Можете да импортирате данни в модел на данни на Power Pivot от множество различни източници на данни, които може да поддържат различни типове данни. Когато импортирате или зареждате данните и след това ги използвате в изчисления или в обобщени таблици, данните се преобразуват в един от типовете данни на Power Pivot. За списък с типове данни вж. Типове данни в модели на данни.

Табличният тип данни е нов тип данни в DAX, който се използва като входни или изходни данни за много нови функции. Например функцията FILTER приема дадена таблица като входна и извежда друга таблица, която съдържа само тези редове, които отговарят на условията на филтъра. Като комбинирате функциите на таблицата с агрегатните функции, можете да извършвате сложни изчисления върху динамично дефинирани набори от данни. За повече информация вж. Агрегирания в Power Pivot.

Формулите и релационният модел

Прозорецът на Power Pivot е дадена област, където можете да работите с множество таблици с данни и свързване на таблици в Релационният модел. В рамките на този модел на данни таблици са свързани помежду си чрез връзки, от които ви позволяват да създадете корелация с колони в други таблици и създаване на по-интересен изчисления. Например можете да създадете формули, която сума стойностите за свързана таблица и след това запишете тази стойност в една клетка. Или, за да управлявате редовете от свързаната таблица, можете да приложите филтри към таблици и колони. За повече информация вижте релации между таблици в модел на данни.

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

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

  • Обикновено формула DAX в дадена колона винаги се прилага към целия набор от стойности в колоната (а не само към няколко реда или клетки).

  • Таблиците в Power Pivot винаги трябва да имат еднакъв брой колони във всеки ред, а всички редове в една колона трябва да съдържат еднакъв тип данни.

  • Когато таблиците са свързани чрез релация, вие трябва да се уверите, че двете колони, използвани като ключове, в повечето случаи имат съответстващи си стойности. Тъй като Power Pivot не налага референтна цялост, можете да създадете релация, дори и да имате несъответстващи си стойности в ключова колона. Но наличието на празни или несъответстващи стойности може да повлияе на резултатите от формулите и на вида на обобщените таблици. За повече информация вж. Справки във формули на Power Pivot.

  • Когато свързвате таблици с помощта на релации, можете да увеличите обхвата или context , в които се оценяват вашите формули. Например формули в обобщена таблица могат да бъдат засегнати от всички филтри или заглавия на колони и редове в обобщената таблица. Можете да пишете формули, които управлявате контекст, но контекст може да предизвика ви резултатите, за да промените по начин, който не може да очаквате. За повече информация вижте контекст във формули на DAX.

Актуализиране на резултатите от формулите

Данни r efresh и преизчисляване са два отделни, но свързани операции, които трябва да се разбере при проектирането на модел на данни, който съдържа сложни формули, голям обем от данни или данни, която се получава от външни източници на данни.

Обновяването на данните е процес на актуализиране на данните във вашата работна книга с нови данни от външен източник. Може да обновявате данните ръчно през интервали, указани от вас. Или, ако сте публикували работната книга на сайт на SharePoint, може да зададете график за автоматично обновяване от външни източници.

Преизчисляване е процесът на актуализиране на резултатите от формулите, за да се отразят промените в самите формули и за да се отразят тези промени в основните данни. Преизчисляването може да повлияе на производителността по следните начини:

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

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

Отстраняване на проблеми с формули

Грешки при писане на формули

Ако получите грешка, докато дефинирате формула, формулата може да съдържа синтактична грешка, семантична грешка или изчислителна грешка.

Синтактичните грешки се разрешават най-лесно. Обикновено се дължат на липсваща скоба или точка и запетая. За помощ за синтаксиса на отделни функции вж. "Справочник за функциите на DAX".

Другият тип грешка възниква, когато синтаксисът е правилен, но стойностите на посочената колона нямат смисъл в контекста на формулата. Причина за подобни семантични и изчислителни грешки може да бъде някой от следните проблеми:

  • Формулата препраща към несъществуваща колона, таблица или функция.

  • Формулата изглежда правилна, но когато ядрото за данни извлече данните, то открива несъответствие на типове и дава грешка.

  • Формулата подава неправилен брой или тип параметри на функция.

  • Формулата сочи към друга колона, която има грешка, и следователно стойностите й са невалидни.

  • Формулата сочи към колона, която не е обработена, което значи, че тя има метаданни, а не действителни данни, които да се използват за изчисленията.

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

Неправилни или необичайни резултати при класиране или подреждане на стойности на колона

При класиране или подреждане на колона, която съдържа стойност NaN (не е число), е възможно да получите грешни или неочаквани резултати. Когато например изчисление раздели 0 на 0, се връща резултат NaN.

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

За да се гарантират правилни резултати, можете да използвате условни изрази чрез функцията IF за тестване за NaN стойности и връщане на числова стойност 0.

Съвместимост с таблични модели на услугите за анализ и режима DirectQuery

Обикновено формулите на DAX, които създавате в Power Pivot, са напълно съвместими с табличните модели на услугите за анализ. Но ако мигрирате вашия модел на Power Pivot в екземпляр на услугите за анализ и след това разположите модела в режим на DirectQuery, ще има някои ограничения.

  • Някои формули DAX може да върнат различни резултати, ако разположите модела в режим на DirectQuery.

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

За повече информация вж. документацията за таблично моделиране на услугите за анализ в SQL Server 2012 BooksOnline.

Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

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

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

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

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×