Изрази за анализ на данни (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, който се използва като вход или изход към много нови функции. Например функцията изисква таблица като входни и изходи друга таблица, която съдържа само редовете, които отговарят на условията за филтриране. Чрез комбиниране на таблицата функции с агрегатни функции, можете да изпълнявате сложни изчисления над динамично дефинирано набори от данни. За повече информация вижте агрегирания в 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.

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

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

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

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

×